这题都不用储存,直接处理。
要排除开头是 ‘ )’ 加个flag判断就行。
括号匹配的问题:
因为都是成对的,所以找到一个‘ ) ’ 就让‘ ( ’的总数t自减,
在t为0时,就说明前面没有与现在找到的 ‘ ) ’对应的‘ ( ’,
可以直接flag=0。
#include<bits/stdc++.h>
using namespace std;
int main(){
int t=0;
bool flag=1;
char ch;
while((ch=getchar())!='@'){
if(ch=='('){
t++;
}
if(ch==')'){
if(t) t--;
else flag=0;
}
}
if(t==0&&flag) cout<<"YES";
else cout<<"NO";
return 0;
}
第一次交题解,没说清楚还请多多包涵 >_<