20. 有效的括号

简介: 20. 有效的括号

栈的应用

   public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for ( int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '(' || c == '[' || c == '{') {
                stack.push(s.charAt(i));
            }
            else {
                if (stack.empty()) {
                    return  false;
                }
                char left = stack.pop();
                if (c == ')' && left == '(') {
                    
                } else if (c == ']' && left == '['){
                    
                } else  if (c == '}' && left == '{') {
                    
                } else {
                    return false;
                }
            }
        }// end for
        
        if (stack.empty())  {
            return  true;
        } else {
            return  false;
        }
    }
相关文章
|
7月前
字符串括号匹配
字符串括号匹配
|
25天前
|
Java
有效的括号
本题要求判断一个仅包含 &#39;(&#39;, &#39;)&#39;, &#39;{&#39;, &#39;}&#39;, &#39;[&#39;, &#39;]&#39; 的字符串是否为有效字符串。有效条件是:每个左括号必须被相同类型的右括号正确闭合。空字符串视为有效。示例代码通过栈结构实现,遍历字符串中的每个字符,遇到左括号则将对应的右括号压入栈中,遇到右括号时检查栈顶元素是否匹配,最终栈为空则字符串有效。
7 0
|
7月前
22. 括号生成
22. 括号生成
51 4
|
7月前
20. 有效的括号
20. 有效的括号
43 1
|
6月前
22.括号生成
22.括号生成
|
7月前
|
C++
去括号问题(C++处理)
去括号问题(C++处理)
85 0
C#基础④——算数运算符(前加、后加、前减、后减)、关系运算符、逻辑表达式
C#基础④——算数运算符(前加、后加、前减、后减)、关系运算符、逻辑表达式
|
数据安全/隐私保护 Python
一日一技:一个括号两种意思,正则表达式奇怪的小括号
一日一技:一个括号两种意思,正则表达式奇怪的小括号
88 0
前缀,中缀,后缀表达式
前缀,中缀,后缀表达式
195 0