酷町编程——6500最多的次数 详解

6500详解

本蒟蒻的第一篇题解,可能不是很好QAQ,多多包涵~

话不多说,下面,正片开始


传送门

题目描述 Description

酷町猫和酷酷这天又开始玩游戏了,他们玩的游戏是这样的:酷町猫写一个字符串,酷酷从该字符串中找一个子串,不过这个子串不是随便找的,要求这个子串在原字符串中出现的次数是最多的,请你输出这个次数。

输入描述 Input Description

一行字符串

输出描述 Output Description

一个整数

样例输入 Sample Input

bcbcbcbc

样例输出 Sample Output

4

数据范围及提示 Data Size & Hint

字符串由小写字母组成
字符串长度不超过10的七次方


读完题没思路,俗话说得好:

看样例!

当我把目光移向样例的时候.........

我:@#!@¥@!……&¥#%@¥!#&@#

这个样例.....它真的,我骂死

要不要这么水啊!!


ok读完题我也是一头雾水,完全没有思路〒▽〒

但逝

经过我历经半小时的冥思苦想,也是发现了本题的奥妙之处 (ノ゚▽゚)ノ


开始分析:

题目要求:这个子串在原字符串中出现的次数是最多的

我们可以知道:

这个子串里每个字符出现的次数也是最多的

举例:在“bcbcbcbc”这个字符串中,“bc”是出现次数最多的子串,而每个“bc”里都有一个“b”,所以“b”的出现次数一定是大于等于“bc”的出现次数的。所以,输出是“b”(当然你说“c”也可以)的出现次数“4”

那如果是“bcbcbcbcb”呢,同理,在这个字符串中,“b”是出现次数最多的子串。所以直接输出5就好了

得出结论!

只要统计出现次数最多的字母即可!!


下面附上AC代码↓

(也是非常的短小精悍啊)

#include<bits/stdc++.h>
using namespace std;
int a[200],ans=0;
string s;
int main()
{
	
	cin>>s;
	for(int i=0;i<s.size();i++){
		a[s[i]]++;//装桶
	}
	for(int i=97;i<=122;i++){//遍历'a'~'z'
		ans=max(ans,a[i]);//找出现次数最多的
	}
	cout<<ans;
	return 0;
}

Bingo~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值