使用C++中的stack容器可以很容易的实现字符串中括号的匹配判断问题:
#include<iostream>
#include<string>
#include<stack>
using namespace std;
int main()
{
string str;
stack<char> small;
cout<<“Enter a string : “;
getline(cin,str);
for(int i=0;i<str.size();i++)
{
switch(str[i])
{
case ‘(‘: small.push(str[i]); //遇到‘(’压进去
break;
case ‘)’: if(!small.empty())
{
small.pop(); //遇到‘)’弹出来
break;
}
if(small.empty()) //循环问结束,若此时为空则失配,
break;
}
}
if(small.empty()) //循环结束后,此时为空则匹配
cout<<“括号匹配”<<endl;
else
cout<<“不匹配!”<<endl;
return 0;
}