问题 A : 过不了就别撸了
题目描述
最近实验室的同学总是利用休息的时间来玩LOL,而且一不小心就玩过头,就耽误了培训时间,这让超哥很头疼。玩LOL的同学都知道LOL的全英文名是League of Legends,那么问题来了,如果给你这个单词leagueofl,也就是league这个单词加of这个单词加字母l,然后给你一个全部由小写英文字母组成的字符串,希望这个串中含leagueofl这个单词尽量多。例如串是eagueofaaalltyleagueofl,那么我们可以整理成leagueoflleagueoflaaaty,那么这个串中最多含有两个这个单词。如果这个题都做不出来的话,就隐居山林吧,别再玩LOL了,O(∩_∩)O~~。
输入格式
包含多组数据,输入一串字符串全部有小写英文字母组成。(长度不超过100)
输出
这个串中所包含的最多leagueofl的个数。
样例输入
eagueofaaalltyleagueofl
样例输出
2
提示[+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
分类
解答:
#include<stdio.h>
#include<string.h>
int main()
{
char a[10001];
int b[101],i,m;
while(scanf("%s",&a)!=EOF)
{
b[1]=b[2]=b[3]=b[4]=b[5]=b[6]=b[7]=0;
for(i=0;i<strlen(a);i++)
{
if(a[i]=='l')
b[1]++;
if(a[i]=='e')
b[2]++;
if(a[i]=='a')
b[3]++;
if(a[i]=='g')
b[4]++;
if(a[i]=='u')
b[5]++;
if(a[i]=='f')
b[6]++;
if(a[i]=='o')
b[7]++;
}
b[2]=b[2]/2;
m=b[2];
for(i=2;i<8;i++)
{
if(b[i]<m)
m=b[i];
}
if(b[1]>=m+1)
m=m;
else
m=b[1]-1;
if(m<0)
m=0; printf("%d\n",m);
}
return 0;
}