20. 有效的括号(栈的使用)

题目描述:括号(小括号、中括号、大括号)的匹配

传送门:https://leetcode-cn.com/problems/valid-parentheses/

解法:《数据结构》中作为例子引出栈的概念。用一个栈维护,从左到右扫描目标字符串,如果括号匹配,即满足三种情况:

①、s[i] == ‘)‘ && Stack.top() == ‘(‘
②、s[i] == ‘]‘ && Stack.top() == ‘[‘
③、s[i] == ‘}‘ && Stack.top() == ‘{‘

如果括号不匹配,就把当前字符压入栈中。扫描完目标字符串后,观察栈中是否还有元素,如果存在,则不是有效字符串。

class Solution {
public:
    bool isValid(string s) {
        stack<char> Stack;
        int len = s.length();
        for(int i = 0; i < len; i ++ ){
            if (Stack.empty()) {
                Stack.push(s[i]);
                continue;
            }
            else if (s[i] == ‘)‘ && Stack.top() == ‘(‘){
                Stack.pop();
                continue;
            }
            else if (s[i] == ‘]‘ && Stack.top() == ‘[‘){
                Stack.pop();
                continue;
            }
            else if (s[i] == ‘}‘ && Stack.top() == ‘{‘){
                Stack.pop();
                continue;
            }
            else{
                Stack.push(s[i]); //括号不匹配而
            }
        }
        if (!Stack.empty()) return false;
        return true;
    }
};

   

原文地址:https://www.cnblogs.com/xiazhenbin/p/12188796.html

时间: 2024-11-04 04:27:46

20. 有效的括号(栈的使用)的相关文章

[leetcode] 20. 有效的括号

20. 有效的括号 括号匹配,用栈即可.高中时第一次学栈后做的第一个题.. class Solution { public boolean isValid(String s) { Stack<Character> characterStack = new Stack<>(); for (int i = 0; i < s.length(); i++) { switch (s.charAt(i)) { case '(': case '[': case '{': character

20. Valid Parentheses(用栈实现括号匹配)

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct

20. Valid Parentheses括号匹配

20 Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]"

20. Valid Parentheses - 括号匹配验证

Description: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. Example: The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]&quo

LeetCode 20 Valid Parentheses 括号匹配问题

题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]&

20. Valid Parentheses(括号匹配,用桟)

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]"

Leetcode题目20.有效的括号(简单)

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

20天Python全栈开发入门到精通视频

免费报名链接:https://ke.qq.com/course/206831 本次课程知识点:带你了解python目前带给我们的机遇和挑战. 全面系统的学习python编程语言,从容应对企业中各式 各样的开发任务.让你具备独立开发能力的同时,还要授之于渔,学好python的同时,还可以进行别的语言的学习和开发 ,只需要很小的学习成本便可掌握更多编程语言. 机构特色. 讲师介绍: 老男孩IT教育python资深讲师,曾任某上市公司云计算架构师,对分布式存储,SDN,爬虫等有深入研究 国内Pytho

20. 有效的括号

知乎ID: 码蹄疾 码蹄疾,毕业于哈尔滨工业大学. 小米广告第三代广告引擎的设计者.开发者: 负责小米应用商店.日历.开屏广告业务线研发:主导小米广告引擎多个模块重构: 关注推荐.搜索.广告领域相关知识; 题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认为是有效字符串.示例 1:输入: "()"输出: true 示例 2:输入: &q