
- 思路一
用栈的思想,成对的既然要有顺序的组合,那就将它推进栈里,每次进的时候和栈顶比较一下是否成对,若成对,则弹出栈顶,进入下一次循环。
哈哈哈哈。。。弹到栈空了,就说明全是按顺序成双成对的。
class Solution {
public boolean isValid(String s) {
boolean b = false;
int len = s.length();
if(len%2 != 0){
return false;
}
Stack<Character> stack = new Stack<Character>();
char c;
if(len>0){
stack.push(s.charAt(0));
}
for(int i = 1;i<len;i++){
c= s.charAt(i);
if(!stack.empty() && stack.peek() == '(' && c==')' ){
stack.pop();
continue;
}
if(!stack.empty() && c==']' && stack.peek()=='['){
stack.pop();
continue;
}
if(!stack.empty() && c=='}' && stack.peek()=='{'){
stack.pop();
continue;
}
stack.push(c);
}
if(stack.empty()){
return true;
}
return b;
}
}