Loading

20.有效括号

20.有效括号

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

有效字符串需满足:

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

示例1 :
输入:s = "()"
输出:true

示例2:
输入:s = "(){}[]"
输出:true

示例3:
输入:s = "([)]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

解析:很简单的解法,因为是一对括号,不管哪种,括号左右是不一样的,所以我们使用栈来解决这个问题,只要出现了左半边的括号,我们就把右半边元素入栈,当栈为空,或者元素不匹配就说明不是匹配的括号

java:

class Solution{
    public boolean isValid(String s){
        if(s.isEmpty())
            return true;
        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.empty() || c != stack.pop())
                return false;
        }
        if(stack.empty())
            return true;
        return false;
    }
}
posted @ 2022-07-14 09:11  十月的十日  阅读(30)  评论(0)    收藏  举报