【思路】:只要不用switch就可以。
【注意】:本题在for循环中采用如下方式会TLE
for (i = 0; i < strlen(str); i++)
采用这种则AC。
for (i = 0; str[i] != '\0'; i++)
有知道的朋友麻烦告知一下,万分感谢!
【TLE代码】:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define MAX 100000+1
int main()
{
//freopen("in.txt", "r", stdin);
char str[MAX];
while (gets(str))
{
int t[26+1];
int i = 0;
memset(t, 0, 27*sizeof(int));
for (i = 0; i < strlen(str); i++)
{
if(str[i] >= 'a' && str[i] <='z')
{
t[str[i]-'a']++;
}
}
for (i = 0; i < 26; i++)
{
// cout << char(i+'a') << ":" << t[i] << endl;
printf("%c:%d\n", i+'a', t[i]);
}
// cout << endl;
printf("\n");
}
return 0;
}
【AC代码】:
for (i = 0; str[i] != '\0'; i++)
{
if(str[i] >= 'a' && str[i] <='z')
{
t[str[i]-'a']++;
}
}