错因:例如"(1+2))"应是"NO"你应在匹配之后再检查一遍是否还有")"
by Y_Naidong @ 2023-11-19 14:17:05
@[xibaby](/user/995569)
你没考虑多余的')'
最后重新扫一遍就行了
```
#include<bits/stdc++.h>
using namespace std;
string s; bool f[256],fl;
int main(){
cin>>s;
for(int i=0;s[i];i++)
if(s[i]=='('){
f[i]=1,fl=0;
for(int j=i+1;s[j];j++)
if(s[j]==')'){
if(f[j]) continue;
f[j]=1,fl=1; break;
}
if(!fl){printf("NO"); return 0;}
}
for(int i=0;s[i];i++) if(!f[i]&&(s[i]=='('||s[i]==')')) {printf("NO"); return 0;};
printf("YES");
return 0;
}
by ilibilib @ 2023-11-19 14:18:56
@[Y_Naidong](/user/997515) @[ilibilib](/user/1039659) 感谢两位大佬!
by xibaby @ 2023-11-19 14:21:47