zoukankan      html  css  js  c++  java
  • 【小白刷题之路Day27】leetcode20 有效的括号

    • leetcode20 有效的括号
    给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。
    
    有效字符串需满足:
    
        左括号必须用相同类型的右括号闭合。
        左括号必须以正确的顺序闭合。
    
    注意空字符串可被认为是有效字符串。
    
    示例 1:
    
    输入: "()"
    输出: true
    
    示例 2:
    
    输入: "()[]{}"
    输出: true
    
    示例 3:
    
    输入: "(]"
    输出: false
    
    示例 4:
    
    输入: "([)]"
    输出: false
    
    示例 5:
    
    输入: "{[]}"
    输出: true
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/valid-parentheses
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    我的C++代码:

    class Solution {
    public:
        bool isValid(string s) {
            stack<char> char_stack;
            
            for (int i=0; i<s.size(); ++i){
                if (s[i]=='(' || s[i]=='[' || s[i]=='{'){
                    char_stack.push(s[i]);
                    continue;
                }
                if (s[i]==')' && (char_stack.empty() || char_stack.top()!='('))
                    return false;
                if (s[i]==']' && (char_stack.empty() || char_stack.top()!='['))
                    return false;
                if (s[i]=='}' && (char_stack.empty() || char_stack.top()!='{'))
                    return false;
                char_stack.pop();
            }
            if (!char_stack.empty())
                return false;
            
            return true;
        }
    };

    跟其他代码题解对比,我觉得思路与可读性不差。

    总结:

    1. 这道题属于简单题,栈的最基本最基本问题,学会了使用C++ STL 中stack使用即可。
    2. 暂无。
  • 相关阅读:
    Windows2003服务器IIS启用Gzip压缩
    使用CDN加速后网站不能使用HttpWebRequest提交数据
    隐藏其它数据库,只让用户能够看到自己拥有权限的数据库
    磁盘阵列的基本概念
    前端构建相关
    一个日志记录类
    手把手教你做个splash(屏幕启动)
    调试问题及解决方案集锦
    c#
    。net中各大编程网址
  • 原文地址:https://www.cnblogs.com/ACStrive/p/11599799.html
Copyright © 2011-2022 走看看