public boolean isValid(String s) {
Stack stack = new Stack<>();
char[] chars = s.toCharArray();
//遍历所有的元素
for (char c : chars) {
//如果是左括号,就把他们对应的右括号压栈
if (c == ‘(’) {
stack.push(’)’);
} else if (c == ‘{’) {
stack.push(’}’);
} else if (c == ‘[’) {
stack.push(’]’);
} else if (stack.isEmpty() || stack.pop() != c) {
//否则就只能是右括号。
//1,如果栈为空,说明括号无法匹配。
//2,如果栈不为空,栈顶元素就要出栈,和这个右括号比较。
//如果栈顶元素不等于这个右括号,说明无法匹配,
//直接返回false。
return false;
}
}
//最后如果栈为空,说明完全匹配,是有效的括号。
//否则不完全匹配,就不是有效的括号
return stack.isEmpty();
}
作者:sdwwld
链接:https://leetcode-cn.com/problems/valid-parentheses/solution/shi-yong-zhan-lai-jie-jue-tu-wen-xiang-j-76oo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。