**第三个点的@并不在末尾。。。**
还有,你的代码过于麻烦,直接用栈:
从头到尾扫一遍,若是‘(’入栈;若是‘)’,栈空输出“NO”,否则出栈;**若是‘@’则退出循环**。
最后再判断一下:栈空输出“YES”,非空输出”NO“。
附上代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int l,st;
char s[260];
int main()
{
scanf("%s",s),l=strlen(s);
for(register int i=0;i<l;i++)
{
if(s[i]=='@')
break;
if(s[i]=='(')
st++;
else if(s[i]==')')
st--;
if(st<0)
printf("NO"),exit(0);
}
if(st)
printf("NO");
else
printf("YES");
return 0;
}
```
by Vojiranto @ 2018-02-19 21:04:51
@[Roots](/space/show?uid=56488)
谢谢!!Thanks♪(・ω・)ノ
by Clever_Jimmy @ 2018-06-18 15:13:16