import java.util.*;
class Solution {
public boolean isValid(String s) {
// 1,判断字符串是否为空
if (s.length() == 0){
return true;
}
Stack<Character> stack =new Stack<>();
for (char ch : s.toCharArray()){
if (ch == '(' || ch == '[' || ch == '{'){
stack.push(ch);
}
else{
if (stack.isEmpty()){
// 没有匹配的左括号入栈
return false;
}
else{
// 如果栈不为空 就要从栈中获取元素 与遍历的字符串比较 是否匹配
char temp = stack.pop();
if (ch == ')') {
if (temp != '('){
return false;
}
}
if (ch == ']') {
if (temp != '['){
return false;
}
}
if (ch == '}') {
if (temp != '{'){
return false;
}
}
}
}
}
return stack.isEmpty()? true : false;
}
}