利用栈数据结构解决括号匹配问题
题目描述:
在文字处理软件或编译程序设计时,常常需要检查一个字符串或一个
表达式中的括号是否相匹配?利用数据结构的“栈”机制,设计算法并
编写程序,判断表达式中括号匹配问题。(了解“栈” 的定义)
题目描述:输入算术表达式 A,以#键结束。其中包括:整数、四则运
算符,和六种括号“(”, “)”, “[”, “]” , “{”, “}”,请你利
用数据结构的“栈”机制设计算法并编写程序,检查算术表达式 A 的
括号是否匹配,如果匹配输出“括号匹配成功”,否则输出“括号匹配
失败”。
样例 1: 8*(3+3)/5*[9-3]+9#
输出:括号匹配成功
样例 2: 8*(9-6)/5*[3+3*{9-5}]#
输出:括号匹配成功
样例 2: 8*(9-6)/5][3+3{9-5}#
输出:括号匹配失败
源程序编码如下:
#include
#include
using namespace std;
int main()
{string s;
int n=0;
while ( cin>>s[n]&&s[n]!= ‘#’)
{
n++;
}
stack<char> brackets;
int i=0;
for(i=0;i<s.length();i++)
{ if(s[i]=='('|