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. 暂无。
  • 相关阅读:
    从0系统学Android-2.6Activity间数据传递
    观察者模式详解
    从0系统学Android-2.5更多隐式Intent用法
    从 View 的四个构造方法说起
    ListView详细介绍与使用
    推荐一个程序员系统学习网址
    从 http协议角度解析okhttp
    从0系统学Android-2.4隐式Intent
    菜单布局记录篇
    轮播图记录篇
  • 原文地址:https://www.cnblogs.com/ACStrive/p/11599799.html
Copyright © 2011-2022 走看看