1355:字符串匹配问题(strs)
【题目描述】
字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]),([)]都应该输出NO。
【输入】
第一行为一个整数
【输出】
在输出文件中有YES或NO。
【输入样例】
5
{}{}<><>()()[][]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{<>}{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]
><}{{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]
【输出样例】
YES YES YES YES NO
#includeusing namespace std; const int N = 255; char a[N] = {0}; int main() { int n; cin >> n; char ch = cin.get();//return char //cout< ,(),[],{} //cin>>ch;//none space ch = cin.get(); //cout< ': jian--; //尖括号 if (a[--top] != '<') { //cout<<">:"<> a; //remove a line ch = cin.get();//return char ch = '@'; } break; case '(': a[top++] = ch; xiao++; break; case ')': xiao--; //小括号 if (a[--top] != '(' || jian != 0) { //cout<<"):"<> a; //remove a line ch = cin.get();//return char ch = '@'; } break; case '[': a[top++] = ch; zhong++; break; case ']': zhong--; //中括号 if (a[--top] != '[' || jian != 0 || xiao != 0) { //cout<<"]:"<> a; //remove a line ch = cin.get();//return char ch = '@'; } break; case '{': a[top++] = ch; da++; break; case '}': da--; //大括号 if (a[--top] != '{' || jian != 0 || xiao != 0 || zhong != 0) { //cout<<"}:"<> a; //remove a line ch = cin.get();//return char ch = '@'; } break; case '@': default: //cout<<"@:"<