前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >栈的应用:括号匹配(C++)

栈的应用:括号匹配(C++)

作者头像
lexingsen
发布2022-02-24 15:15:21
1.2K0
发布2022-02-24 15:15:21
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客

一.要点 (1)利用栈先进后出的特点,当遇到左括号"[","{",""(“时,直接入栈。 (2)当遇到右括号”)","}","]"时,如果此时空的,那么成对的括号一定不能进行匹配,直接返回false即可。 (3)可以出栈的情况,当栈顶的左括号与当前的右括号匹配时,出栈。 (4)遍历过程中出现的其他情况都是错误的。比如栈顶为左括号,当前遍历到也是左括号。 (5)当遍历完成时,如果栈不空,说明还有未进行匹配的左括号,也就意味括号匹配失败,直接返回false即可。 二.代码实现

代码语言:javascript
复制
#include <iostream>
#include <stack>
using namespace std;

bool isValid(string s) {
    stack<char> st;
    for (auto x : s) {
        if (x == '[' || x == '(' || x == '{')
            st.push(x);
        else if (st.empty())
            return false; 
        else if ( (st.top() == '(' && x == ')') || (st.top () == '[' && x == ']') || (st.top() == '{' && x == '}') )
            st.pop();
        else
            return false;
    }
    return st.empty();
}


int main() {
    string s;
    cin >> s;
    cout << isValid(s) << endl;
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档