题目很简单,栈的应用。需要注意的是空串也是合法的。
AC代码:
#include <iostream>
#include <cstdio>
#include <stack>
#include <cstring>
using namespace std;
int main()
{
// freopen("1.txt", "r", stdin);
int n;
bool ans;
char str[140];
cin >> n;
getchar();
while(n--)
{
gets(str);
stack<char> S;
ans = true;
int i = 0, len = strlen(str);
while(i < len)
{
if(str[i] == '(' || str[i] == '[')
S.push(str[i]);
if(str[i] == ')' || str[i] == ']')
{
if(S.empty())
{
ans = false;
break;
}
char c = S.top();
if((str[i] == ')' && c == '(') || (str[i] == ']' && c == '['))
S.pop();
else
{
ans = false;
break;
}
}
i++;
}
if(ans && S.empty())
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return 0;
}