1187:统计字符数 &&字符串计数
【题目描述】
给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。
【输入】
输入包含一行,一个字符串,长度不超过1000。
【输出】
输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。
【输入样例】
abbccc
【输出样例】
c 3
#include<bits/stdc++.h>
using namespace std;
int main(){
string a;
int maxchar[27]={0};
cin>>a;
for(int i=0;i<a.length();i++)
{
char c=a[i];
maxchar[c-'a']++;//计数的同时可以根据索引输出对应字符
}
int maxcount=1;
int maxindex=0;
for(int i=0;i<26;i++)
{
if(maxchar[i]>maxcount)
{
maxcount=maxchar[i];
maxindex=i;
}
}
cout<<static_cast<char>('a' + maxindex)<<" "<<maxcount;
return 0;
}
首先写一下做题思想,要求统计出现·次数最多的字符和次数,分别定义一个string类,一个int类数组,与前面写的计数排序类似,(数组【i】用索引计数或进行bool判断),字符型是要用ascii码用出现字符减最小‘a’得到位置,也就是该字符本体用来计数,而输出最多最小字符,这个不断比较就行,次数不变,maxindex变。
当然先排序再统计也可以。

浙公网安备 33010602011771号