字串统计

来源:互联网 发布:淘宝客怎么用 编辑:程序博客网 时间:2024/04/28 08:26

问题描述

  给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。

输入格式

  第一行一个数字L。

  第二行是字符串S。

  L大于0,且不超过S的长度。

输出格式

  一行,题目要求的字符串。

 

输入样例1:

  4

  bbaabbaaaaa

 

输出样例1:

  bbaa

 

输入样例2:

  2

  bbaabbaaaaa

 

输出样例2:

  aa

数据规模和约定

  n<=60

  S中所有字符都是小写英文字母。

 

提示

  枚举所有可能的子串,统计出现次数,找出符合条件的那个

 

参考代码:

#include<stdio.h>#include<string.h>#define N 100int main(){char a[N]={0},b[N],c[N];int i,j,k,len,l,count,max=0,lenB=0,lenC;scanf("%d",&l);getchar();gets(a);len=strlen(a);for(;l<len;l++){for(i=0;i<len-l;i++){for(j=i,k=0;j<l+i;j++,k++)c[k]=a[j];c[k]=0;count=1;for(j=i+1;j<len-l;j++){for(k=j;k<j+l;k++){if(a[k]!=c[k-j])break;}if(k==j+l)count++;}lenC=strlen(c);if(count>1&&(count>max||(count==max&&lenB<lenC))){for(j=0;j<=lenC;j++)b[j]=c[j];lenB=lenC;max=count;}}}puts(b);return 0;} 


测试结果:



0 0
原创粉丝点击