[信息学奥赛一本通题解]1187:统计字符数「v1.0」

   日期:2020-08-30     浏览:242    评论:0    
核心提示:㊀题目时间限制: 1000 ms 内存限制: 65536 KB提交数: 8767 通过数: 5052 【题目描述】 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。【输入】输入包含一行,一个字符串,长度不超过1000。【输出】 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一 个空格分开。如果有多个字符出现的次数相同且最多,那么输出 ascii码最小的那一个字符。【输入样例】 abbccc【输出样例】 c 3

㊀题目

时间限制: 1000 ms         内存限制: 65536 KB
【题目描述】
 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。

【输入】
输入包含一行,一个字符串,长度不超过1000。

【输出】
 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一   个空格分开。如果有多个字符出现的次数相同且最多,那么输出  ascii码最小的那一个字符。

【输入样例】
 abbccc
【输出样例】
 c 3

㊁讲解

储存每个字母出现的次数,最后从中选取最大值

㊂代码展示

#include <cstdio>
#include <cstring>

struct sdbus 
{
    char a = 0;
    int  b = 0;
};

sdbus play( char*words )
{
    int i = 0,
        maxchar = 0;

    int len = strlen( words );
    int wordnum[27] = {0};

    while( i < len )
    {
        wordnum[ words[i] - 'a' ]++;
        i++;
    }

    i = 0;
    sdbus shudubus;
    while( i < 26 )
    {
        if( wordnum[i] > shudubus.b ) shudubus.b = wordnum[i], shudubus.a = i+'a';
        
        i++;
    }
    return shudubus;
}

int game()
{
    char words[1001] = {0};
    scanf( "%s", words );
    sdbus shudubus;
    shudubus = play( words );
    printf( "%c %d", shudubus.a, shudubus.b );


}

int main( int argc, char **argv )
{
    game();
}

㊃其他

1 更新

敬请期待

2 声明

请合理使用本文章中的代码,并仅供学习使用,所造成后果本人概不负责。代码欢迎在不篡改的情况下自由传播。

最后,感谢读者们的支持

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服