首页 > 编程语言 > 详细

C++括号匹配检测(用栈)

时间:2016-10-12 14:02:51      阅读:192      评论:0      收藏:0      [点我收藏+]

输入一串括号,包括圆括号和方括号,()[],判断是否匹配,即([]())或[([][])]为匹配的正确的格式,[(])或([())为不匹配的格式。

#include<iostream>
#include<string>
#include<stack>
using namespace std;
int main()
{
string str;
getline(cin,str);
stack<char>s;
for(int i=0;i<str.size();i++)
{
switch(str[i])
{
case ‘(‘:s.push(str[i]);
break;
case ‘[‘:s.push(str[i]);
break;
case ‘)‘:if(!s.empty()&&(s.top()==‘(‘))
{
s.pop();
break;
}
else
goto breakLoop;
case ‘]‘:if(!s.empty()&&(s.top()==‘[‘))
{
s.pop();
break;
}
else
goto breakLoop;
}

}

if(s.empty())
cout<<"括号匹配";
else
cout<<"不匹配";
return 0;
breakLoop:cout<<"不匹配";
return 0;
}

程序有不完美的地方,还望批评指正。

C++括号匹配检测(用栈)

原文:http://www.cnblogs.com/rswss/p/5952244.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!