0
点赞
收藏
分享

微信扫一扫

26、栈-20.有效的括号

斗米 2022-03-21 阅读 65

题目描述

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

思路

使用栈进行合适配对的匹配!

挨个对比栈顶的元素。

记得出现不匹配的元素时,直接返回false;可以大大减少判断的次数,降低时间!

代码

1)使用栈进行 合适 配对的匹配

class Solution {
    public boolean isValid(String s) {
        char[] ch = s.toCharArray();//字符串转换为字符数组
        Stack<Character> stack = new Stack<>();//进行操作的栈
        //挨个入栈!遍历字符数组
        for(int i = 0;i < s.length();i++){
            if(ch[i] == '(' || ch[i] == '{' || ch[i] == '[') stack.push(ch[i]);
            else if(!stack.isEmpty()){
                if(ch[i] == ')' && stack.peek() == '(') stack.pop();
                else if(ch[i] == '}' && stack.peek() == '{') stack.pop();
                else if(ch[i] == ']' && stack.peek() == '[') stack.pop();
                else return false;
            }
            else return false;
        }
        return stack.isEmpty();
    }
}
举报

相关推荐

0 条评论