算法训练 字串统计
来源:互联网 发布:警方破特大网络赌球 编辑:程序博客网 时间:2024/05/02 00:20
问题描述
给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。
输入格式
第一行一个数字L。
第二行是字符串S。
L大于0,且不超过S的长度。
第二行是字符串S。
L大于0,且不超过S的长度。
输出格式
一行,题目要求的字符串。
输入样例1:
4
bbaabbaaaaa
输出样例1:
bbaa
输入样例2:
2
bbaabbaaaaa
输出样例2:
aa
输入样例1:
4
bbaabbaaaaa
输出样例1:
bbaa
输入样例2:
2
bbaabbaaaaa
输出样例2:
aa
数据规模和约定
n<=60
S中所有字符都是小写英文字母。
S中所有字符都是小写英文字母。
提示
枚举所有可能的子串,统计出现次数,找出符合条件的那个
解答代码#include<iostream>#include<cstring>#include<algorithm>#include<cstdlib>#include<fstream>using namespace std;int maxCounter=-1;string maxStr="";string getRes(int n,string str){int i,j;int counter=0;int len=str.length();for(i=0;i<len-n;i++){//获取其中一个子串 string s=str;//string temp=s.substr(i,i+n);string temp="";for(int kk=i;kk<i+n;kk++)temp+=s[kk];counter=0;//该字串的数量for(j=0;j<len-n;j++){s=str;//string comStr=s.substr(j,j+n);string comStr="";for(int k=j;k<j+n;k++)comStr+=s[k];//cout<<comStr<<endl;if(temp.compare(comStr)==0){counter++;} } if(counter>maxCounter ||(counter==maxCounter && temp.length()>maxStr.length())){maxCounter=counter;maxStr=temp;counter=0;}}return maxStr;}int main(){//freopen("input10.txt","r",stdin); string str,res;int i,j,k,n; cin>>n;cin>>str;int maxLen=-1;for(i=0;i<=str.length()-n;i++){if(i==0){res=getRes(n,str);}else{n++;res=getRes(n,str);}}cout<<maxStr<<endl;return 0;}
0 0
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 算法训练 字串统计
- 蓝桥杯 算法训练 字串统计
- 蓝桥杯 算法训练 字串统计
- 蓝桥杯--算法训练 字串统计
- 蓝桥杯 算法训练 字串统计
- 蓝桥杯 算法训练 字串统计
- POJ 2386 Lake Counting
- basic algorithm in python
- Android中Service#onStartCommand方法的返回值
- Android广播机制二
- cpp——隐式转换——类类型
- 算法训练 字串统计
- SElinux 读懂.te 定义自己的 .te
- Android最简单的方式实现MVP
- Spring MVC 和Struts2的区别,一点想法
- Mysql常用语句
- python 借用Jpype调用stanford parser
- C++拷贝构造函数详解
- 页面上报错:Invalid left-hand side in assignment
- Spring3.X与jdk8不兼容的问题