给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
建立一个新栈,遍历字符串的字符,进行比较
核心:遇到( 压入 )
遇到) 则弹出栈顶数据 进行比较 相同为对称,不同为不对称
public static boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char a:s.toCharArray()) {
if (a == '{'){
stack.push('}');
}else if (a == '('){
stack.push(')');
}
else if (a == '['){
stack.push(']');
}else if (stack.isEmpty() || a != stack.pop()){
return false;
}
}
return true;
}
}