括号匹配问题:判断括号状态是否合法,'('一定有一个')'和它对应起来,'('入栈,通过出栈出来的值是否与')'匹配确定是否合法。如果stack到最后不为空,则一定有至少一个'('没法匹配成功。
题目为判断'[]'、'{}'、'()'的合法状态
public static boolean braket(String str){ Stack<Character> s = new Stack<Character>(); for(int i = 0 ; i< str.length(); i++){ char c = str.charAt(i); switch(c){ case '{': case '[': case '(': s.push(c); break; case '}': if(!s.isEmpty() && s.pop()=='{') break; else return false; case ']': if(!s.isEmpty() && s.pop()=='[') break; else return false; case ')': if(!s.isEmpty() && s.pop()=='(') break; else return false; } } if(s.isEmpty()){ return true; } else{ return false; } }