判断一串包含'('')''['']',{‘ ’}‘’括号的字符串是否匹配
#include<iostream>
#include<string>
#include<sstream>
#include<stack>
using namespace std;
int main()
{
string str = "dfa(sdfdf[dag(hh)sj]";
int len = str.size();
stack<char> temp;
bool flag = true;;
for (int i = 0; i < len; i++)
{
if ((str[i] == '{') || (str[i] == '[') || (str[i] == '('))
temp.push(str[i]);
else if (str[i] == ')')
{
if (!temp.empty())
{
char tem = temp.top();
temp.pop();
if (tem != '(')
{
flag = false;
break;
}
}
else
{
flag = false;
break;
}
}
else if (str[i] == ']')
{
if (!temp.empty())
{
char tem = temp.top();
temp.pop();
if (tem != '[')
{
flag = false;
break;
}
}
else
{
flag = false;
break;
}
}
else if (str[i] == '}')
{
if (!temp.empty())
{
char tem = temp.top();
temp.pop();
if (tem != '{')
{
flag = false;
break;
}
}
else
{
flag = false;
break;
}
}
}
if (!temp.empty())
flag = false;
cout << flag;
system("pause");
return 0;
}