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变。
当然先排序再统计也可以。

posted @ 2026-03-19 17:25  Szy111  阅读(39)  评论(0)    收藏  举报