Time Limit:1000 ms
Memory Limit:256 mb
从键盘输入一个字符串(可能含有数字、字母、其他可见字符),输出出现频率最高的英文字母及次数,忽略字母的大小写(如大写A和小写a均视为a)。
例如:
输入:There are 10,000 soldiers in the town.
输入:e 5
#include<iostream>usingnamespace std;typedefstructNode{int id;char ch;}sNode;intmain(){char str[1000];fgets(str,1000,stdin);
sNode str_node[1000];for(int i =0; str[i]!='\n';++i){if(isalpha(str[i])){char s =tolower(str[i]);int num = s -'a';if(str_node[num].id ==0){//当前字母未出现过时
str_node[num].ch = s;}
str_node[num].id++;}}int max_num =0;char c = str_node[0].ch;for(int i =0; str[i]!='\n';++i){if(isalpha(str[i])){char s =tolower(str[i]);int num = s -'a';if(str_node[num].id > max_num){
max_num = str_node[num].id;
c = str_node[num].ch;}}}
cout << c <<' '<< max_num << endl;}