最長公共子串行python實現

2021-06-22 00:36:36 字數 1560 閱讀 1856

最長公共子串行是動態規劃基本題目,下面按照動態規劃基本步驟解出來。

序列a共有m個元素,序列b共有n個元素,如果a[m-1]==b[n-1],那麼a[:m]和b[:n]的最長公共子串行長度就是a[:m-1]和b[:n-1]的最長公共子串行長度+1;如果a[m-1]!=b[n-1],那麼a[:m]和b[:n]的最長公共子串行長度就是max(a[:m-1]和b[:n]的最長公共子串行長度,a[:m]和b[:n-1]的最長公共子串行長度)。

python**如下:

執行結果輸出如下:

上圖是執行結果,第乙個矩陣是計算公共子串行長度的,可以看到最長是4;第二個矩陣是構造這個最優解用的;最後輸出乙個最優解bcba。

最長公共子串行python實現

1 dp基本思路 公共子串行最優子結構 將問題分解表成更簡單的子問題,這個子問題可以分解成更多的子問題使用動態規劃演算法求解,這個過程需要在乙個表中儲存同一級別的子問題的解,因此這個解可以被更高階的子問題使用。2 問題的解 定義兩個序列x y,二維陣列f i j 表示x的i位和y的j位之前的最長公共...

python實現最長公共子串行

最長公共子串行python實現,最長公共子串行是動態規劃基本題目,下面按照動態規劃基本步驟解出來。1.找出最優解的性質,並刻劃其結構特徵 序列a共有m個元素,序列b共有n個元素,如果a m 1 b n 1 那麼a m 和b n 的最長公共子串行長度就是a m 1 和b n 1 的最長公共子串行長度 ...

python 最長公共子串行

usr bin env python3 coding utf 8 最長公共子串行 fish fosh fsh def findlongestsubstring source,dest 輸入值,要比較的值 inlen len source outlen len dest target cell 0 f...