问题标题: 酷町堂:4466 最长连续重复字符(longest) 采纳时加到500!

0
0
已解决
董宇昊
董宇昊
初级启示者
初级启示者
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int a[15]{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},sum=1,n;
int main(){
 	string s;
    cin>>n>>s;
	for(int i=1;i<=n;i++){
		if(a[i]==a[i-1]){
		    a[int(s[i])]++;
		}
	    if(a[i]>=sum) sum=a[i];
	} 
	for(int i=0;i<=n;i++){
		if(a[i]==sum) cout<<s[i]<<' ';
	}
	cout<<"\n"<<sum;
    return 0;
}




大佬找错!!



4466   最长连续重复字符(longest)
经验值:0
题目描述 Description
请统计输入的字符串中最大连续重复字符的个数, 要求统计找出给定字符串中哪些字符连续出现的次数最多,并且要统计这些字符一共连续出现了多少次。

例如:字符序列为 AAA222BBAAAaa,则在这个字符序列中,字符 A 和字符 2 连续出现的次数最多,都是 3 次。


 
输入描述 Input Description
共两行,第一行为字母序列中的字母个数 n(1≤N≤1000) ,

第二行为 n个字符组成的字符串序列。


 
输出描述 Output Description
共两行,第一行为最多连续出现次数最多的字符,若有多个用空格分隔,输出顺序为他们在字符串中的先后顺序。

第二行为连续出现重复的最大次数。


 
样例输入 Sample Input
13
AAA222BBAAAaa
样例输出 Sample Output
A 2
3
数据范围及提示 Data Size & Hint
1≤n≤1000 33≤字符数值即 ASCII 码≤126


 

董宇昊在2020-06-17 16:59:25追加了内容

重要的事情说3遍!

只要思路,不要代码!

代码网址举报!!!

只要思路,不要代码!

代码网址举报!!!

只要思路,不要代码!代码网址举报!!!

董宇昊在2020-06-18 20:38:15追加了内容

我太难了

既然进前三了


0
0
董宇昊
董宇昊
初级启示者
初级启示者

只要思路,不要代码!

代码网址举报!!!

0
0
董宇昊
董宇昊
初级启示者
初级启示者

顶一下,怎么没人回答?

0
被禁言 何冯成
何冯成
中级光能
中级光能

这题我记得是考题

你这个思路有点不对

这题要用选择排序

定义用字符数组会简单点

思路不对我就不找错了

核心:

for(i=1;i<=n;i++)//读n个串 
 cin>>s[i];
 //充分利用选择排序的思想:1-2.1-3..1-10;
for(i=1;i<=n;i++)//确保1个字符出现1次也算
{cnt=1;
for(j=i+1;j<=n;j++)
 {  if(s[i]==s[j])//相等计数, 
      cnt++;
else break;//a[i]与a[j]不相等,直接退出j 
 }  //end for j
x[i]=cnt;//放在 x[i]放计数器  
i=j-1;// i直接跳到j(因为马上执行步长i++故 i=j-1) 
}//end for i

然后定义一个max1=0

循环判断一下就行了

我要回答