原题链接:https://vjudge.net/problem/UVA-673
分类:栈
备注:水题
分析:简单的大学课本里都有的认识栈的第一步。
#include<iostream>
#include<string>
#include<stack>
using namespace std;
int main(void)
{
int T;
scanf("%d", &T);
getchar();
while (T--)
{
string s;
getline(cin, s);
int len = s.length(), flag = 1;
stack<char>tt;
for (int i = 0; i < len; i++)
{
if (s[i] == '(' || s[i] == '[')
tt.push(s[i]);
else if (s[i] == ')')
if (!tt.empty() && tt.top() == '(')tt.pop();
else { flag = 0; break; }
else if(s[i]==']')
if (!tt.empty() && tt.top() == '[')tt.pop();
else { flag = 0; break; }
}
if (flag && tt.empty())printf("Yes\n");
else printf("No\n");
}
return 0;
}