题目链接:http://codeforces.com/contest/723/problem/B
【分析】求不在括号里的单词的长度和在括号里的单词的个数。立个flag表示所处状态就好了,0表示不在括号内,1表示在括号内,然后再扫一遍就OK了。
下面是AC代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char a[355];
int main()
{
int n;
while(~scanf("%d",&n))
{
scanf("%s",a);
int len=strlen(a);
int s1=0,s2=0,flag=0,maxn=0;
for(int i=0;i<len;i++)
{
if(a[i]!='_'&&a[i]!='('&&a[i]!=')'&&flag==0)
{
s1++;
maxn=max(maxn,s1);
}
if(a[i]=='_')
{
s1=0;
}
if(a[i]=='(')
{
flag=1;
s1=0;
}
if(a[i]!='_'&&a[i]!='('&&a[i]!=')'&&(a[i+1]=='_'||a[i+1]=='('||a[i+1]==')')&&flag==1)
{
s2++;
s1=0;
}
if(a[i]==')'&&flag==1)
{
flag=0;
s1=0;
}
}
printf("%d %d\n",maxn,s2);
}
return 0;
}