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

class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack= new Stack<Character>();
        for(char c:s.toCharArray()){
            if(c=='(')
                stack.push(')');
           else if(c=='[')
                stack.push(']');
           else if(c=='{')
                stack.push('}');
            else if(stack.isEmpty()||stack.pop()!=c)
                return false;
            
            
            
        }
        
        return stack.isEmpty();
        
    }
}

首先把字符串里面的左括号所对应的右括号进栈,当遇到不是左括号的时候,就判断这个括号是否和刚进栈的字符一样。
在查完之前,如果栈为空,说明这个字符之前的括号都是配对的,并且这个是右括号,返回false
例如;’([]){’ 前四个字符配对,第五个没有配对的,所以返回false.
如果有不理解的地方,请联系我

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值