10.22算法

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
 

示例 1:

输入:s = "()"
输出:true
示例 2:

输入:s = "()[]{}"
输出:true
示例 3:

输入:s = "(]"
输出:false
 

提示:

1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
相关标签

C++

 

class Solution {
public:
    bool isValid(string s) {
                stack<char> st;
    map<char,char> mmatch;
    mmatch[')'] = '(';
    mmatch[']'] = '[';
    mmatch['}'] = '{';
    for(auto c:s){
        if(c=='(' || c=='[' || c=='{'){
            st.push(c);
        }
        else{
            if(st.empty()){
                return false;
            }
            auto need_match = mmatch[c];
            if(st.top() == need_match){
                st.pop();
            }
            else return false;
        }
    }
    if(st.empty())
        return true;
    else return false;
    }
};
关键:判断为空的地方需要设置,以防出现)}这种情况没有处理
posted @   卧龙丹心  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示