• 20. 有效的括号


    20. 有效的括号

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

    有效字符串需满足:

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

    示例 1:

    输入:s = "()"
    输出:true
    

    示例 2:

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

    示例 3:

    输入:s = "(]"
    输出:false
    

    示例 4:

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

    示例 5:

    输入:s = "{[]}"
    输出:true

    提示:

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

    解析:

    水题,栈即可

    class Solution {
    public:
        stack<char> ss;
        bool isValid(string s) {
    
            // int a[3];
            // memset(a, 0, sizeof(a));
            // for(int i = 0; i < s.length(); i++)
            // {
            //     if(s[i] == '(') a[0]++;
            //     else if(s[i] == ')') a[0]--;
            //     else if(s[i] == '{') a[1]++;
            //     else if(s[i] == '}') a[1]--;
            //     else if(s[i] == '[') a[2]++;
            //     else a[2]--;
                
            // }
            // if(a[0] == 0 && a[1] == 0 && a[2] == 0) return true;
            // return false;
            for(int i = 0; i < s.length(); i++)
            {
                if(s[i] == '(' || s[i] == '[' || s[i] == '{') ss.push(s[i]);
                else
                {
                    if(s[i] == ')') 
                    {
    
                        if(ss.empty() || ss.top() != '(') return false;
                        ss.pop();
                    }
                    else if(ss.empty() || s[i] == ']') 
                    {
                        if(ss.empty() || ss.top() != '[') return false;
                        ss.pop();
                    }
                    else if(s[i] == '}') 
                    {
                        if(ss.empty() || ss.top() != '{') return false;
                        ss.pop();
                    }
    
                }
    
            }
            if(ss.empty()) return true;
            return false;
    
    
            
    
        }
    };
  • 相关阅读:
    模糊查询和聚合函数
    数据查询基础
    使用RestSharp请求GBK编码的网站乱码(NetCore环境)
    使用VsCode的Rest Client进行请求测试
    基于c#发送Outlook邮件(仅SMTP版本)
    创建Gitblit本地服务器(For windows )01
    获取本地文件然后批量存储到数据库
    描点的改进:运用chart画图。
    获取ADO连接字符串
    lock(this)
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/16556282.html
Copyright © 2020-2023  润新知