C语言如何求两字符串的最大子串?

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:41:08
用C编写程序,求两个字符串的最大子串
写出程序清单,求出所有公共子串也行,不一定要最大公共子串

不明白你的最大字串是指排序上的还是长度上的。下面给出两个例子:
在排序上的比较,例如 串A="abc", 串B="dbdadeed",从这两个串来说,A>B;程序如下
int getMaxStr(char *a, char *b)
{
return strcmp(a, b);
}
如果该函数返回值大于0,表示a>b

长度比较,例如 串A="abc", 串B="dbdadeed",结果应该是A<B
int getMaxStr(char *a, char *b)
{
return (strlen(a)-strlen(b));
}

如果对时间性要求的不是很严格的话,或者是字符串的长度不的很长的话,可以直接暴力搜索,把最大字串给搜索出来

如果时间性能要求很严,或者字符串范围很大,可以用KMP算法,来实现字符串匹配,这样时间性能会比较好;

最大公共子串的话就麻烦多了。。。

好像问的就是最大公共子串

如果不用函数可以用for循环,设两个变量检查字符个数。