做网站去哪里找模板,学网站开发容易吗,深圳燃气公司电话多少,wordpress 换空间 目录 西部数码目录
一、 哈希表
二、 编写解题
2.1 统计出现次数 2.2 解答 通过本次练习#xff0c;将学习到C中哈希表的基础知识
题目#xff1a;
给定一个只包含小写字母的字符串#xff0c;统计字符串中每个字母出现的频率#xff0c;并找出出现频率最高的字母#xff0c;如果…目录
一、 哈希表
二、 编写解题
2.1 统计出现次数 2.2 解答 通过本次练习将学习到C中哈希表的基础知识
题目
给定一个只包含小写字母的字符串统计字符串中每个字母出现的频率并找出出现频率最高的字母如果最高频率的字母有多个输出字典序靠前的那个字母。 一、 哈希表
哈希表的作用是快速判断一个元素是否出现在集合里它的核心思想是在关键码和存储位置之间建立一个确定的对应关系f, 使得每个关键字key对应一个存储位置而这个对应关系称之为散列函数哈希函数。 哈希表来解决问题的时候一般选择以下三种数据结构。 数组set集合map映射 二、 编写解题
由于输入的全都是小写字母小写字母只有26个那我们定义一个长度为26的数组即可字符a到字符z的ASCII是26个连续的数值所以字符a映射为下标0相应的字符z映射为下标25。 2.1 统计出现次数
统计字符大小出现的次数并进行计数。
for(int i 0; i s.size(); i){count[ s[i] - a ];
} 2.2 解答
#include iostream
#include string
using namespace std;
int main(){int n;string s;while(cin n){while(n--){cin s;//创建一个26位的count数组并将其全部初始化为0用于储存后续字符出现频率int count[26] {0};//统计各个字符出现的频率并将其储存在count数组中for(int i 0; i s.size(); i){count[ s[i] - a];}//初始化最大值int flag 0;//定义出现频率最多的字符为resultchar result;//遍历整个数组找到值最大的索引并找出出现频率最大的字符for(int i 0; i 26; i){if(count[i] flag){flag count[i];result i a;}}cout result endl;}}}