您的位置:首页 > 运维架构

codeforces#378 Div.2 A. Grasshopper And the String

2016-11-01 21:10 302 查看
题意是给定一个全大写字母组成的字符串(长度不超过100),找出其中连续两个元音之间的最大距离。(连续两个元音是指中间没有其他元音)。

首先,元音有6个,不是5个,分别是’A’ ‘E’ ‘I’ ‘O’ ‘U’和 ‘Y’,注意有个 Y !

其次样例里有超过100的字符串,数组要开大点,

一开始开的是105,WA。改成150,WA。改成1500,可以了。

原因我自己也不知道。还有相同的样例自己CB跑是101,跑到cf上就成错误的102了。原因也不知道 。

#include<bits/stdc++.h>
using namespace std;
const int MAX_N = 1000+50;
int main()
{
char ch[MAX_N];
int d[MAX_N];
memset(d,0,sizeof(d));
d['A']=d['E']=d['I']=d['O']=d['U']=d['Y']=1;
ch[0]='0';
for(int i=1;i<=100;i++){
scanf("%c",&ch[i]);
if(ch[i]=='\n') {
ch[i]='\0';
break;
}
}

int n=strlen(ch)-1,ans=-1;
//cout<<n<<endl;
for(int i=1;i<=n;i++){
if(d[ch[i]]) {
ans=i;
break;
}
}
if(ans==-1) {
cout<<n+1<<endl;
return 0;
}

int last=ans;

for(int i=ans+1;i<=n;i++){
if(d[ch[i]]) {
ans=max(ans,i-last);
last=i;
}
}

cout<<max(ans,n+1-last)<<endl;
}


题目分有元音,没元音,如果是判断条件是是否为元音的话,要注意最后一段也就是最后一个元音到末尾的距离要放入考虑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codeforces