2012-05-03 17:04:58Morris

[UVA][EASY] 11577 - Letter Frequency

Problem A: Letter Frequency

A weird keyboard

In this problem we are interested in the frequency of letters in a given line of text. Specifically, we want to know the most frequently occurring letter(s) in the text, ignoring case (to be clear, "letters" refers precisely to the 26 letters of the alphabet).

Input begins with the number of test cases on its own line. Each test case consists of a single line of text. The line may contain non-letter characters, but is guaranteed to contain at least one letter and less than 200 characters in total.

For each test case, output a line containing the most frequently occurring letter(s) from the text in lowercase (if there are ties, output all such letters in alphabetical order).

Sample input

1
Computers account for only 5% of the country's commercial electricity consumption.

Sample output

co


#include <stdio.h>

int main() {
int t;
char str[999];
scanf("%d", &t);
getchar();
while(t--) {
gets(str);
int cnt[26] = {}, i;
for(i = 0; str[i]; i++) {
if(str[i] >= 'a' && str[i] <= 'z')
cnt[str[i]-'a']++;
if(str[i] >= 'A' && str[i] <= 'Z')
cnt[str[i]-'A']++;
}
int max = 0;
for(i = 0; i < 26; i++)
max = max > cnt[i] ? max : cnt[i];
for(i = 0; i < 26; i++)
if(cnt[i] == max)
printf("%c", i+'a');
puts("");
}
return 0;
}