#include<stdio.h> #include<stdlib.h> #include<string.h> int GetMacSubStr(const char* S1,const char* S2, char* maxSubStr) { int i,j,x,y,k,s,n=strlen(S1),m=strlen(S2); //分别为遍历长度变量,遍历s1起点变量,遍历s2起点变量,遍历检测变量, //答案起点记录变量,答案长度记录变量,s1长度变量,s2长度变量 for(i=1; i<=n&&i<=m; i++) {//先检测长度为1的字符串是否最长公共 for(x=0; x+i<=n; x++)//第一次检测从0位置做为起点 for(y=0; y+i<=m; y++) {//第一次检测从0位置做为起点 for(j=0; j<i; j++)//要求长度为i的连续相等 if(S1[x+j]!=S2[y+j])break;//一次失败就退出 if(j==i) {//根据是否是中途退出判断是否成功,成功就记录 k=x; s=i; } } } if(s==0)return -1;//根据长度判断是否找到 strcpy(maxSubStr,S1+k);//存入答案 maxSubStr[s]=0;//在末尾加上结束标志 return 0;//返回成功 } int mergeStr(const char* S1, const char* S2, char* maxSubStr){ int i,j,d,n=strlen(S1),m=strlen(S2),k=strlen(maxSubStr); /
字符串去重合并
最新推荐文章于 2023-04-28 20:08:49 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)