算法之路之征服上海交大的oj- 括号匹配
此题考查栈的使用
#include<iostream>
#include<string.h>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
char a[101];//存储字符串的数组
cin>>a;
char b[101]; //栈数组
int len = strlen(a);
int top = 0;
int flag = 0;
for(int i=0;i<len;i++){
if(a[i]=='('){
b[top++] = a[i];
}
if(a[i] == ')'){
if(top == 0){//判断是否栈空,防止栈下溢出
flag = 1;
break;
}else{
char ch = b[top-1];
top--;
if(ch != '('){
flag = 1;
break;
}
}
}
}
if(flag == 0&&top==0){//当标志位为0时而且栈空时表示括号全部匹配
cout<<"YES"<<endl;
} else{
cout<<"NO"<<endl;
}
}
return 0;
}