单词分析(点击前往做题)
输入描述:
输入一行包含一个单词,单词只由小写英文字母组成。
对于所有的评测用例,输入的单词长度不超过 1000。
输出描述:
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
输入输出样例:
输入:
lanqiao
输出:
a
2
思路:
1.用一个数组来存储每个小写字母的次数
2.灵活运用ASCll码,使数组编号与ASCll码相对应
代码:
#include <iostream>
#include<string>
using namespace std;
int main()
{
//用数组a存储每个小写字母的出现次数
int a[26]={0};
//存储字符串
string arr;
//存储最大出现次数
int max=0;
//存储出现次数最大的字母
char max_letter;
//输入字符串
cin>>arr;
//对字符串中的每个字符进行计数
for(int i=0;i<arr.length();i++)
{
a[(int)(arr[i])-'a']++;
}
//找出最大出现次数
for(int i=0;i<26;i++)
{
if(a[i]>max)
{
max=a[i];
//最大出现的字母
max_letter=(char)(i+'a');
}
}
//输出
cout<<max_letter<<endl;
cout<<max;
return 0;
}