- 题目描述
- 解题代码
- C语言
- 法一
- 法二
- 测试用例
题目传送门 >> 次数差
【问题描述】
x 星球有 26 只球队,分别用 a ~ z 的 26 个字母代表。他们总是不停地比赛。
在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)
【输入描述】
输入,一个串,表示球队获胜情况(保证串的长度 < 1000)。
【输出描述】
要求输出一个数字,表示出现次数最多的字母比出现次数最少的字母多了多少次。
【输入输出样例】
示例1
输入:
abaabcaa
输出:
4
【运行限制】
• 最大运行时间:1s
• 最大运行内存: 256M
解题代码 C语言 法一
【解题思路】:用数组count记录a~z出现的次数(eg.count[0]为字母a出现的次数)。
#include#include int main() { int len,i,j,max=1,min=1000; int count[26]={0}; char str[1000]; gets(str); // 获取输入的字符串str的长度 len=strlen(str); // 用count记录a~z出现的次数 for(i=0; i max){ max = count[j]; } if(count[j]!=0 && count[j] 法二 【解题思路】逐个判断输入的字符串中,每一个字符在字符串中的出现个数,记录最大值与最小值
#include#include int main() { int len,i,j,k,max=1,min=1000; char a[1000]; gets(a); len=strlen(a); for(i=0; i max) { max=k; } if(k
测试用例测试1
输入:abcbbcas输出:
2测试2
输入:abbccbcacd输出:
3



