找到最大的迭代次数串。参考迭代万亿最大数目,找到核心人物,我们可以扩展,找到最大的迭代次数串。
基本思想是把反复次数最大记录下来。并记录起始位置。
#include <iostream>
#include <stdio.h> using namespace std; int mystrlen(char *str) { int sum(0); char *temp=str; while(*temp!='\0') { ++temp;++sum; } return sum; } bool contain_sub_str(char *str, char *sub_str) { int len1= mystrlen(str); int len2= mystrlen(sub_str); int i(0); if(len1<len2) return false; while(i<len2) { if( *(str+i)!= *(sub_str+i))break;++i; } if(i==len2) return true; return false; } int find_max_repeat(char *str, char *sub_str, int *len) { int i(0); int num(0),start(0),len2(mystrlen(sub_str)); while(*(str+i) !='\0') {if(contain_sub_str(str+i, sub_str)){ int s=i,k=0; while(contain_sub_str(str+i, sub_str)) { i+=len2; ++k; } if(k>num){ num=k; start=s; }}else ++i; } *len=num; return start; } int main() { char str[]="abaabaaacdeeabaabaabaabaeefdefdefdefdsceebd"; int i,j; i=find_max_repeat(str, "aba", &j); printf("%d,%d\n",i,j); i=find_max_repeat(str, "efd", &j); printf("%d,%d\n",i,j); return 0; }版权声明:本文博客原创文章,博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/bhlsheji/p/4730908.html
相关资源:数据结构—成绩单生成器