20. 有效的括号

简介: 20. 有效的括号

题目描述

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。


有效字符串需满足:


左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

每个右括号都有一个对应的相同类型的左括号。

解题思路

括号匹配的问题,显然我们可以用栈来解决。


遇到左括号就入栈。


当是右括号的时候,观察栈是否为空,当为空的时候——不匹配


当栈顶的左括号与右括号不匹配的时候——不匹配

代码

class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(auto ch:s)
        {
            if(ch=='('||ch=='['||ch=='{') st.push(ch);
            else 
            {
                if(st.empty()) return false;
                if(ch==')') 
                {
                    if(st.top()!='(') return false;
                    st.pop();
                }
                else if(ch==']')
                {
                    if(st.top()!='[') return false;
                    st.pop();
                }
                else if(ch=='}')
                {
                    if(st.top()!='{') return false;
                    st.pop();
                }
            }
        }
        return st.empty();
    }
};
相关文章
|
1月前
20. 有效的括号
20. 有效的括号
|
2月前
22. 括号生成
22. 括号生成
29 4
|
1月前
22.括号生成
22.括号生成
LeetCode | 20. 有效的括号
LeetCode | 20. 有效的括号
|
2月前
|
C++
去括号问题(C++处理)
去括号问题(C++处理)
27 0
|
11月前
LeetCode:有效的括号
LeetCode:有效的括号
39 0
|
机器学习/深度学习 算法 安全
LeetCode - #20 有效的括号
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
LeetCode - #20 有效的括号
leetcode:20.有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
50 0
|
数据安全/隐私保护 Python
一日一技:一个括号两种意思,正则表达式奇怪的小括号
一日一技:一个括号两种意思,正则表达式奇怪的小括号
68 0