最長公共字串
發布時間: 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!='