-
思路一
用棧的思想,成對的既然要有順序的組合,那就将它推進棧裡,每次進的時候和棧頂比較一下是否成對,若成對,則彈出棧頂,進入下一次循環。
哈哈哈哈。。。彈到棧空了,就說明全是按順序成雙成對的。
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;
}
}