• 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驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    在react中实现CSS模块化
    react 组件的生命周期
    HTTP缓存机制与原理
    H5新增API和操作DOM
    js操作json方法总结
    gulp详细教程——前端自动化构建工具
    JavaScript你必须掌握的8大知识点
    HTTP请求与服务器响应流程
    max-height实现任意高度元素的展开收缩动画
    移动端轮播图手势分析+源码
  • 原文地址:https://www.cnblogs.com/itdef/p/13500909.html
Copyright © 2020-2023  润新知