題目:給出兩個字串a b,求a與b的最長公共子串行(子串行不要求是連續的)。
輸入
第1行:字串a第2行:字串b
(a,b的長度 <= 1000)
輸出
輸出最長的子串行,如果有多個,隨意輸出1個。
輸入示例
abcicbaabdkscab
輸出示例
abca
**如下:
#include#include#include#includeusing namespace std;
char a[1010],b[1010];
int lcs[1010][1010];
int b[1010][1010];
void printlcs(int d[1010], char *x, int i, int j)
else if(d[i][j]==1)
printlcs(d,x,i-1,j);
else
printlcs(d,x,i,j-1);
}//void p(char *x)
else}}
printlcs(b, a+1, l1, l2);
printf("\n");
// p(a+1);
} return 0;
}
51NOD 最長公共子串行問題
給出兩個字串a b,求a與b的最長公共子串行 子串行不要求是連續的 比如兩個串為 abcicba abdkscab ab是兩個串的子串行,abc也是,abca也是,其中abca是這兩個字串最長的子串行。輸入 第1行 字串a 第2行 字串b a,b的長度 1000 輸出 輸出最長的子串行,如果有多個,...
51NOD 最長公共子串行問題
最長公共子串行問題就是求序列a a1,a2,an,和b b1,b2,bm,的乙個最長公共子串行。因為最長公共子串行不唯一,讓我們把問題簡化,如何求出兩個序列的最長公共子串行長度呢?你首先能想到的恐怕是暴力列舉?那我們先來看看 序列a有 2 n 個子序列,序列b有 2 m 個子序列,如果任意兩個子串行...
51nod 最長公共子串行測試 LCS 回溯
輸入 第1行 字串a 第2行 字串b a,b的長度 1000 輸出 輸出最長的子串行,如果有多個,隨意輸出1個。輸入示例 abcicba abdkscab 輸出示例 abca 這道題比較6,但是利用每個位置的記錄進行回溯就更6,好好體會下。include include include includ...