题目描述
Alice的记忆力不太好,如果一个句子中含的单词(每个单词之间用一个空格隔开)数量超过10,或者句子中字母种类(不区分大小写)超过10个,她就会记不住。现在给你若干个句子,请写个程序判断一下Alice是否能记住这些句子。
输入
存在多个样例。
每行输入一个字符串,表示句子。字符串长度不超过200,只含英文字母和空格。
输入数据保证每个单词之间只有一个空格,行末没有空格。
输出
对于每个样例,能记住,输出“Yes”,否则输出“No”。
样例输入
Alice is a smart girl but she is bad in memory a b c d e f g h i j A B C D E F G H I J K
样例输出
Yes No Yes No
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char s[201];
while(gets(s)!=NULL)//注意不能用scanf不读取空格
{
int i,flag=0,cnt=0;
int temp[26]={0};
char c;
for(i=0;i<strlen(s);i++)
{
if(s[i]==' ')//空格
flag++;
else
{
c=tolower(s[i]);//字母全部变为小写
temp[c-'a']= 1 ;//字母存在
}
}
for(i=0;i<26;i++)
{
if(temp[i])
cnt++;//存在的字母总数
}
if(cnt>10||flag>9)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}