编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
主要用的是矩阵的思想如:
str1 = "abccade";
str2 = "dgcadde";
则构建两个矩阵:a[7][7],b[7][7]
aaaaaaa dgcadde
bbbbbbb dgcadde
ccccccc dgcadde
ccccccc dgcadde
aaaaaaa dgcadde
ddddddd dgcadde
eeeeeee dgcadde
用这两个矩阵的元素去比较,创建一个存放结果的矩阵c,
当元素相同时c中相应地位置 = 它左上的值+1;
如:最后得矩阵c
0001000
0000000
0010000
0010000
0002000
0000300
0000001
c中元素最大的3,则最大字串长度为3,字串为a[3][2],a[4][3],a[5][4]
代码实现如下:
#include <stdio.h>
//创建矩阵法
void substr(const char str1[],const char str2[])
{
int max=0,m=0,n=0;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载