先上代码
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char data[256];
int a,b=0;//左右括号数量
int main(){
bool hasZuo=false;//之前有左括号
for(int i=0;i<256;i++){
char input=getchar();
data[i]=input;
if(input=='@'){
break;
}
if(input=='('){
a++;
hasZuo=true;
}else if(input==')'){
if(b<a){
b++;
hasZuo=false;
continue;
}
if(!hasZuo){//之前没
cout<<"NO"<<endl;
return 0;
}
b++;
hasZuo=false;
}
}
if(a!=b){//||hasZuo
cout<<"NO"<<endl;
}else{
cout<<"YES"<<endl;
}
return 0;
}
对于我来说,这个题主要考的是代码的调试能力或者说是仔细程度