链接:力扣
题目:
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。
示例:
输入:s = "()"
输出:true
代码:(用栈的方法来存和判断字符串)
class Solution {
public boolean isValid(String s) {
Stack<Character> st = new Stack<>();
for(int i = 0; i < s.length(); ++i){
if(s.charAt(i) == '(') st.push(')');
else if(s.charAt(i) == '{') st.push('}');
else if(s.charAt(i) == '[') st.push(']');
//右括号没有找到对应的左括号,或者没有找到要匹配的字符
else if(st.isEmpty() || s.charAt(i) != st.peek()) return false;
else st.pop(); //匹配成功
}
return st.isEmpty(); //空的话就匹配完成,或者有剩余的元素,就说明没有对应的右括号
}
}