第九届蓝桥杯 c组c/c++省赛 次数差题解(计数排序的应用)
2019-02-03 17:34
344 查看
题目:
次数差
x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。
在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)
输入,一个串,表示球队获胜情况(保证串的长度 < 1000)
要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。
比如:
输入:
abaabcaa
则程序应该输出:
4
解释:a出现5次,最多;c出现1次,最少。5 - 1 = 4
再比如:
输入:
bbccccddaaaacccc
程序应该输出:
6
代码:
#include <stdio.h> #include <string.h> int main() //计数排序 { char s[1000]; scanf("%s", &s); int len = strlen(s); //获取字符串s的长度 int helper[256] = { 0 }; //ascll范围在0~255之间(包括0和255) int max = 0, min = len; for (int i = 0; i < len; i++) { helper[s[i]]++; //计数 } for (int i = 0; i < 256; i++) { if (helper[i] > max) { max = helper[i]; } if (helper[i] < min&&helper[i] != 0) { min = helper[i]; } } printf("%d\n", max - min); return 0; }
如果感觉这篇文章对你有帮助的话,不妨点一个赞,十分感谢。
printf(“点个赞吧!”);
cout<<“点个赞吧!”;
System.out.println(“点个赞吧!”);
相关文章推荐
- 2018省赛第九届蓝桥杯真题C语言B第四题题解 测试次数
- 2018第九届蓝桥杯C++省赛B组[最新题解汇总]
- 2018年第九届蓝桥杯【C++省赛B组】【第四题:测试次数】
- 蓝桥杯-【抽签】【2016年省赛B组题解】【C++】——快速解法
- 2018年第九届蓝桥杯【C++省赛B组】【第三题:乘积尾零】——附解题代码
- 2018年第九届蓝桥杯省赛B组C/C++部分答案
- 蓝桥杯省赛A组 C/C++ 部分题解说明(填坑待补)
- 蓝桥杯-【K倍区间】【2017年省赛B组题解】-动态规划解法-【C++】
- 蓝桥杯-【方格填数】【2016年省赛B组题解】【C++】——暴力破解
- 2018年第九届蓝桥杯【C++省赛B组】【第五题:快速排序】
- 蓝桥杯-【交换瓶子】【2016年省赛B组题解】【C++】
- 第九届蓝桥杯省赛C++B组 测试次数
- 2018年4月1日省赛第九届蓝桥杯真题c,c++(B组)
- 第九届蓝桥杯(省赛)C/C++大学A组个人解题思路
- 2018年第九届蓝桥杯【C++省赛B组】【第二题:明码】
- 蓝桥杯-【剪邮票】【2016年省赛B组题解】【C++】
- 2018省赛第九届蓝桥杯真题C语言B组第八题题解 日志统计
- 2018年第九届蓝桥杯【C++省赛B组】【第三题:乘积尾零】
- 2018年第九届蓝桥杯C/C++省赛A组题解
- 2018省赛第九届蓝桥杯C/C++ B组 个人代码 递增三元组