LQ0121 次数差文本处理+最值
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0121 次数差文本处理+最值相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2018初赛 C++ C组E题
题目描述
x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。
在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?
输入格式
输入存在多组数据,对于每组数据:
输入一行包含一个串,表示球队获胜情况(保证串的长度<1000)
输出格式
对于每组数据:输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。
输入样例
abaabcaa
bbccccddaaaacccc
输出样例
4
6
问题分析
先对出现的字母做个统计,再算一下最值即可。
AC的C语言程序如下:
/* LQ0121 次数差 */
#include <iostream>
#include <cstring>
using namespace std;
#define N 26
int a[N];
int main()
string s;
while (cin >> s)
memset(a, 0, sizeof a);
for (int i = 0; s[i]; i++)
a[s[i] - 'a']++;
int mina = 1000, maxa = 0;
for (int i = 0; i < N; i++)
maxa = max(maxa, a[i]);
if (a[i] != 0)
mina = min(mina, a[i]);
printf("%d\\n", maxa - mina);
return 0;
以上是关于LQ0121 次数差文本处理+最值的主要内容,如果未能解决你的问题,请参考以下文章