letcode算法--12.有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:出栈入栈

class Solution {
    public boolean isValid(String s) {
        int len = s.length();
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < len; i++) {
            char ch = s.charAt(i);
            if (ch == '(' || ch == '{' || ch == '[') stack.push(ch);
            else if (stack.isEmpty()) return false;
            else if (ch == ')' && stack.pop() != '(') {
                return false;
            }
            else if (ch == '}' && stack.pop() != '{')return false;
            else if (ch == ']' && stack.pop() != '[') {
                return false;
            }
//            else if(stack.isEmpty() || (ch == ')' && stack.pop() != '(') || (ch == '}' && stack.pop() != '{') || (ch == ']' && stack.pop() != '['))
//                return false;
        }
        return stack.isEmpty();
    }
}
posted @ 2022-09-07 17:08  兴儿  阅读(31)  评论(0)    收藏  举报