zoukankan      html  css  js  c++  java
  • LeetCode 020. 有效的括号 数据结构 栈

    地址https://leetcode-cn.com/problems/valid-parentheses/

    给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。
    
    有效字符串需满足:
    
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。
    
    示例 1:
    
    输入: "()"
    输出: true
    示例 2:
    
    输入: "()[]{}"
    输出: true
    示例 3:
    
    输入: "(]"
    输出: false
    示例 4:
    
    输入: "([)]"
    输出: false
    示例 5:
    
    输入: "{[]}"
    输出: true

    算法1
    括号配对 考虑使用栈就好了
    遇到左括号就入栈 遇到右括号就可以看看当前栈是否为空或者有无匹配的括号即可

    C++ 代码

    class Solution {
    public:
    
    bool isValid(string s) {
        stack<char> st;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
                st.push(s[i]);
            }
            else if (s[i] == ')') {
                if (st.empty() ||  st.top() != '(') return false;
                st.pop();
            }
            else if (s[i] == ']') {
                if (st.empty() ||  st.top() != '[') return false;
                st.pop();
            }
            else if (s[i] == '}') {
                if (st.empty() ||  st.top() != '{') return false;
                st.pop();
            }
        }
        if (st.empty()) return true;
    
        return false;
    }
    
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    计数器
    ToString()方法的应用
    js阻止提交表单(post)
    跟随鼠标单击移动的div
    js实现CheckBox全选全不选
    生成n~m的随机数
    洛谷试炼场 动态规划TG.lv(3)
    洛谷试炼场 动态规划TG.lv(2)
    无题十一
    无题十
  • 原文地址:https://www.cnblogs.com/itdef/p/13500909.html
Copyright © 2011-2022 走看看