代码
import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
/**
* 使用一个栈来存储
*/
// 1.判断,避免愚蠢的字符
if(s.charat(0) == ')' || s.charat(0) == ']' || s.charat(0) == '}'){
return false;
}
// 2.实例化一个栈
Stack<Character> stack = new Stack();
// 3.遍历字符串
for(int i = 0; i< s.length() ;i++){
// 3.1 判断进栈还是出栈
if(s.charat(i) == '(' || s.charat(i) == '[' || s.charat(i) == '{'){
stack.push(s.charat(i));
}else{
// stack.peek() == s.charat(i) ? stack.pop() : return false; -------------< 错误位置
}
}
}
}
错误原因
1.illegal start of expreesion
- 不合法的开始表达
- 错误原因:三元表达式中只能存放合法的表达式,意思就是三元表达式后面的表达式必须计算之后有值
- return false 不是合法有值的表达式
2.not a statement
解决方法:换成if -else结构 ,因为不执行的表达式可以用于判断。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。