括号匹配leetcode题目链接
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
输入: “()[]{}”
输出: true
输入: “(]”
输出: false
public boolean isValid(String s) {
Stack<Character>stack = new Stack<>();
for(char c:s.toCharArray()){
if(c=='(')stack.push(')');
else if(c=='[')stack.push(']');
else if(c=='{')stack.push('}');
else if(stack.isEmpty()||c!=stack.pop())return false;
}
return stack.isEmpty();
}
遇到左括号就将它相应的右括号压入栈中,遇到右括号则将栈中元素出栈进行比较