工作之后,果然和学校差距太多了。好久都没有刷题了,为了能不能继续工作的原因也是操碎了心
现在情况基本稳定了,可以继续工作,也可以回去上课。算是最满意的结果了吧。
距离蓝桥杯比赛还有20来天,每天下班的时候刷刷题吧,希望可以有所斩获。
1、首先 "" 空字符串是返回true的
2、第一个符号必须是 ( { [ 其中的一个,这个稍微想一下就好了。
3、当你循环结束了,一定要判断你的栈是否为空。不为空就是false
4、思路就是找到一对就去除一对
class Solution {
public boolean isValid(String s) {
if(s == null || s.length() % 2 != 0)
return false;
char[] array = s.toCharArray();
Stack<Character> stack = new Stack<>();
for(int i = 0;i < s.length(); i++) {
if(array[i] == '(' || array[i] == '{' || array[i] == '[')
stack.push(array[i]);
else {
if(stack.isEmpty())
return false;
if(array[i] == ')') {
if(stack.pop() != '(')
return false;
} else if(array[i] == '}') {
if(stack.pop() != '{')
return false;
} else if(array[i] == ']' ) {
if(stack.pop() != '[')
return false;
}
}
}
if(stack.isEmpty())
return true;
return false;
}
}