20. 有效的括号

>> 饿了么、美团外卖红包领取地址<<

题目:https://leetcode-cn.com/problems/valid-parentheses/

代码:

class Solution {

    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            Character c = s.charAt(i);
            if (stack.isEmpty() || !isMatch(stack.peek(), c)) {
                stack.push(c);
            } else {
                stack.pop();
            }
        }
        return stack.isEmpty();
    }

    private boolean isMatch(Character c1, Character c2) {
        if (c1 == null || c2 == null) {
            return false;
        }
        return c1.equals('(') && c2.equals(')')
                || c1.equals('[') && c2.equals(']')
                || c1.equals('{') && c2.equals('}')
                ;
    }

}

挺简单的一道题目,主要解题思路就是使用栈,遍历字符串,当栈为空或者栈顶字符跟现有字符无法匹配时入栈,否则出栈。最后判断栈是否为空即可。

注意点 :
1、需要自己实现是否匹配的方法isMatch,也不难,就是判断条件而已。
2、isMatch(stack.peek(), c)这里的两个参数顺序不能写反了,因为[]这种情况是匹配的,而][这种情况是不匹配的。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍

维特丝(vetes)泡沫发蜡喷雾干胶定型弹力素羊毛卷男女保湿蓬松发胶 泡沫发蜡450ml+旅行装99ml
¥34.00
维特丝(vetes)一梳黑染发剂染发梳植物潮色显白遮盖白发自然清水纯黑发焗油男女梳炫彩 自然黑LW00
¥49.00
维特丝(vetes)染发笔遮白补染快速染发天然植物一次性染发棒 一次性染发棒黑色
¥46.00
维特丝 护发精油防毛躁清香玫瑰奇焕亮发干枯烫发卷发直发头发润发护发素男女士 滋养柔顺护发精油100ml
¥36.00