思路:
遍历字符串中的每个字符,如果是 (,[,{
则 将对应的 ),],}
入栈
如果不是则意味着此时的字符为 ),],}
,此时栈若为空,或者栈顶不为对应的元素,返回 false
class Solution {
public boolean isValid(String s) {
Deque<Character> stk = new LinkedList<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(') {
stk.push(')');
} else if (c == '[') {
stk.push(']');
} else if (c == '{') {
stk.push('}');
} else if (stk.isEmpty() || stk.peek() != c) {
return false;
} else {
stk.pop();
}
}
return stk.isEmpty();
}
}