题解 | #括号序列#

括号序列

http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

入栈要匹配的右半括号,再检查

        stack<char> st;
        for(int i=0; i<s.size(); ++i){
            if(s[i] == '{') st.push('}');
            else if(s[i] == '(') st.push(')');
            else if(s[i] == '[') st.push(']');
            else if(st.empty()) return false;
            else if(s[i] != st.top())
                return false;
            else
                st.pop();
        }
        return st.empty();

模拟括号匹配的过程

        map<char, char> m;
        m['('] = ')';
        m['{'] = '}';
        m['['] = ']';
        stack<char> st;
        for(int i=0; i<s.size(); ++i){
            if(s[i] == '{' || s[i] == '(' || s[i] == '[') st.push(s[i]);
            else if(st.empty()) return false;
            else if(s[i] == m[st.top()])
                st.pop();
        }
        return st.empty();
全部评论

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务