找最大子串
2012-04-20 22:45
197 查看
参考了网上的代码,这个方法应该是最直接明了的,没有进行任何优化。
#include "stdafx.h" #include<afx.h> #include <iostream.h> void findMaxSubstr(const char *str1 , const char *str2 , char *maxSubstr) { ASSERT((str1!=NULL)&&(str2!=NULL)); ASSERT(maxSubstr!=NULL); int maxPos=-1;//记录有没有相同的字符 int maxLen=0;//相同的最大长度 for(int i=0;i<strlen(str1);i++)//控制str1中字符 { for(int j=0;j<strlen(str2);j++)//控制str2中的字符 { if(str1[i]==str2[j]) { for(int k=1;(str1[i+k]==str2[j+k])&&(str1[i+k]!='\0');k++);//如果出现相同字符的话继续往下执行比较下一个字符直到不相同 //k为相同的个数 if(k>maxLen) { maxPos=i; maxLen=k; } } } } if(maxPos==-1) { maxSubstr[0]='\0'; } else { memcpy(maxSubstr,str1+maxPos,maxLen); maxSubstr[maxLen]='\0'; } } int main(int argc, char* argv[]) { char substr[20]; findMaxSubstr("12345678","92145645",substr); cout<<substr<<endl; return 0; }
相关文章推荐
- 雅虎笔试题-最大公共子串
- HDU1540 Tunnel Warfare(线段树:维护最大连续子串)
- 求数组元素和是K的倍数的子串的最大长度
- 最大子串和
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- LeetCode 5 最大回文子串
- EOJ Monthly 2018.1 - B 最大的子串
- 求出2个字符串中的最大公共子串
- (基础dp(最大连续子串和))华中区邀请赛,B.Magic
- 查找最大回文子串算法
- 求字符串的最大回文子串
- EOJ 3486. 最大的子串
- 寻找数组中的最大连续子串
- 获取最大相同子串
- 蓝桥杯:最大公共子串
- 求两个字符串的最大公共子串
- 求两个字符串的最大公共子串【培训第三天】
- 最大子串匹配
- sdutacm-最大公共子串
- 转帖-POJ 2774 后缀数组 题目要求:求s1,s2的最大子串