题目描述
给一个字符串,请判断字符串是否出现了所有的英文字母(不区分大小写)。
输入
每行一个只含英文字母的字符串,长度不超过1000。
输出
每行输出一个样例的结果,如果出现了所有的字符串,输出“Yes”,否则输出“No”。(不需要输出引号)
样例输入
ProgrammingPratice TheQuickBrownFoxJumpsOverLazyDog样例输出
No Yes提示
巨大的输入量,请使用C风格的输入
解题思路:整体没什么难的,利用ASCII码转化和数组标记就行了。
AC代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[1010] = {0};
while (scanf("%s",str) != EOF)
{
int cnt = 0;
int len = strlen(str); // c库函数,求输入字符串(str)的长度
bool books[30] = {0};
for (int i = 0; i < len; i ++)
{
if (str[i] >= 97) str[i] -= 32; // 小写转化为大写(ASCII码)
if ( !books[str[i]-65]) cnt ++; // 如果该字母第一次出现,cnt++
books[str[i]-65] = true; // 标记已出现的字母
if (cnt == 26) break;
}
if (cnt == 26) puts("Yes");
else puts("No");
}
return 0;
}