😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!
😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
前言🙌
哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【蓝桥杯每日一题】—— 单词分析~这里利用了数组指针的方法知识, 都是精华内容,可不要错过哟!!!😍😍😍
单词分析🙌
题目描述
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
输入描述
输入一行包含一个单词,单词只由小写英文字母组成。
对于所有的评测用例,输入的单词长度不超过 1000。
输出描述
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
解题思路分析: 😍
- 首先认真读题,然后分析,寻找最优解。
- 首先,我们先创建一个数组,其实就是一个用来统计26个字母出现次数的数组。让数组下标0~25 对应 a 到 z 。
- 循环输入字母,出现一次就让对应的数组元素加1。 遇到回车键‘\n’就停止。
- 然后循环26次,将数组中的对应元素值(出现次数)进行比较。将max赋值为 i 。
- 然后就可以输出对应最大出现次数和对应的字母啦。
- 这里用到了Ascall码值和其对应关系相关知识,从而实现数字和字母的相加减的转化。
解题源码分享: 😍
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int count[26] = {0}; int max = 0; char ch; while((ch = getchar()) != '\n') { count[ch -'a']++; } int i = 0; for(i = 1;i < 26; i++) { if(count[i] > count[max]) max = i; } printf("%c\n%d", max +'a',count[max]); return 0; }
程序输出结果验证: 😊
总结撒花💞
本篇文章旨在分享【C语言蓝桥杯每日一题】—— 单词分析。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘