最长公共字串
发布时间: 2021-03-15 04:38:07
⑴ 如何寻找两个字符串的最长公共部分
算法:求两个字符串的最长公共子串原理:(1)将连个字符串分别以行列组成一个矩阵。(2)。若该矩阵的节点对应的字符相同,则该节点值为1。(3)当前字符相同节点的值=左上角(d[i-1,j-1])的值+1,这样当前节点的值就是最大公用子串的
⑵ C语言编程 查找两字符串的最长公共子串 如"I am a student."与"R u a student"最长公共子串是"student"
//有个问题是,空格应该也算字符吧,所以没考虑空格。就像你那个例子,最长公共字串应该是//“student”,包含空格.还有,就是我这个应该不是很好的方法,效率比较低,我是先让串//1不动,串2先从第1个字符开始与串1比较,然后串2从第2个字符开始于串1比较,都比较完了,///串1向右挪动一个位置
#include<stdio.h>
intmain()
{
charstr1[100]={0},str2[100]={0};
printf("pleaseinputtwostrings: ");
gets(str1);//读入字串
gets(str2);
char*p1=str1;//分别用来存str1和str2的当下比较位置
char*p2=str2;
intmax=0,num=0;//max存放比较后最长字串长度,num是这一轮比较公共字串长度
char*start;//存放最大串起始位置
while(*p1!='