一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

A和B的最長公共子序列是什么?LCS詳解

來源:CSDN 時間:2023-03-14 08:43:20

LCS是什么


【資料圖】

LCS是Longest Common Subsequence的縮寫,即最長公共子序列。一個序列,如果是兩個或者多個序列的子序列,并且是所有子序列中最長的,則為最長公共子序列。(有序但不連續也為子序列)

序列 13456 和 345674 的最長公共子序列為 3456序列 ABDBC 和 BCDBA 的最長公共子序列為 BDB

LCS可以用來做什么

生物學上用來進行基因序列比對,以推測序列的結構、功能和演化過程用來描述兩段文字的”相似性“,可以用來辨別是不是抄襲

怎么計算LCS

暴力窮舉法

就是把兩個序列所有的子序列都列出來,然后一一進行比較。

假定字符串 A 和 B 的長度分別為 n 和 m,那么 A 共有 2 n ? 1 2^n-1 2n?1 個子序列,B 共有 2 m ? 1 2^m-1 2m?1 個子序列,然后將任意兩個進行一一比較,最后得出 A 和 B 的最長公共子序列。這種算法的時間復雜度是 O ( 2 n + m ) O(2^{n+m}) O(2n+m) ,復雜度太高,當然不推薦使用。

動態規劃法

記:

字符串 A ,長度為 n ,從 1 開始;字符串 A ,長度為 n ,從 1 開始。

A i = < A 1 , A 2 , . . . A i > A_i=Ai=即 A 序列的前 i 個字符 ( 1 ≤ i ≤ n ) (1\leq i \leq n) (1≤i≤n) ( A i A_i Ai 計做”字符串 A 的 i 前綴)

B j = < B 1 , B 2 , . . . B j > B_j=Bj=即 B 序列的前 j 個字符 ( 1 ≤ j ≤ m ) (1\leq j \leq m) (1≤j≤m) ( B j B_j Bj 計做”字符串 B 的 j 前綴)

如果 A n = B m A_n=B_m An=Bm (最后一個字符相同),那么 A 和 B 的最長公共子序列 C 的最后一位 C k = A n = B m C_k=A_n=B_m Ck=An=Bm ,那么 L C S ( A , B ) = L C S ( A n ? 1 , B m ? 1 ) + A n LCS(A,B)=LCS(A_n-1,B_m-1)+A_n LCS(A,B)=LCS(An?1,Bm?1)+An

如果 A n ? = B m A_n\not=B_m An?=Bm ,那么他們的最長公共子序列 C 要么是 L C S ( A n ? 1 , B m ) LCS(A_{n-1},B_m) LCS(An?1,Bm) ,要么是 L C S ( A n , B m ? 1 ) LCS(A_n,B_{m-1}) LCS(An,Bm?1) ,所以 L C S ( A , B ) = m a x { L C S ( A n ? 1 , B m ) , L C S ( A n , B m ? 1 ) } LCS(A,B)=max\{LCS(A_{n-1},B_m),LCS(A_n,B_{m-1})\} LCS(A,B)=max{LCS(An?1,Bm),LCS(An,Bm?1)}

1234567

ABDCABA

BABCBDAB

A 3 = B 3 = ′ C ′ A_3=B_3= "C" A3=B3=′C′ 那么 L C S ( B D C , A B C ) = L C S ( B D , A B ) + ′ C ′ LCS(BDC,ABC)=LCS(BD,AB)+"C" LCS(BDC,ABC)=LCS(BD,AB)+′C′

A 5 = B 4 = ′ B ′ A_5=B_4="B" A5=B4=′B′ 那么 L C S ( B D C A B , A B C B ) = L C S ( B D C A , A B C ) + ′ B ′ LCS(BDCAB,ABCB)=LCS(BDCA,ABC)+"B" LCS(BDCAB,ABCB)=LCS(BDCA,ABC)+′B′

A 2 ? = B 2 A_2\not=B_2 A2?=B2 那么 L C S ( B D , A B ) = m a x { L C S ( B , A B ) , L C S ( B D , A ) } LCS(BD,AB)=max\{LCS(B,AB),LCS(BD,A)\} LCS(BD,AB)=max{LCS(B,AB),LCS(BD,A)}

A 4 ? = B 5 A_4\not=B_5 A4?=B5 那么 L C S ( B D C A , A B C B D ) = m a x { L C S ( B D C , A B C B D ) , L C S ( B D C A , A B C B ) } LCS(BDCA,ABCBD)=max\{LCS(BDC,ABCBD),LCS(BDCA,ABCB)\} LCS(BDCA,ABCBD)=max{LCS(BDC,ABCBD),LCS(BDCA,ABCB)}

由以上可以得出

L C S ( A n , B m ) = { L C S ( A n ? 1 , B m ? 1 + A n )                          A n = B m m a x { L C S ( A n ? 1 , B m ) , L C S ( A n , B m ? 1 ) } A n ? = B m LCS(A_n,B_m)=\begin{cases}LCS(A_{n-1},B_{m-1}+A_n) \quad \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \quad A_n=B_m\\ max\{LCS(A_{n-1},B_m),LCS(A_n,B_{m-1})\} \quad A_n\not=B_m\end{cases} LCS(An,Bm)={LCS(An?1,Bm?1+An)                        An=Bmmax{LCS(An?1,Bm),LCS(An,Bm?1)}An?=Bm

使用動態規劃法求解

首先上一幅圖

記一個二維數組 c [ m , n ] c[m,n] c[m,n], c [ i , j ] c[i,j] c[i,j] 的值為 x i x_i xi 和 y j y_j yj 的最長公共子序列的長度,然后不難得出當 i = 0 i=0 i=0 或 j = 0 j=0 j=0 的時候 X i X_i Xi 和 Y j Y_j Yj 的最長公共子序列的長度。然后通過動態規劃法的公式得出 c ( i , j ) = { 0 i = 0 , j = 0 c ( i ? 1 , j ? 1 )                          i > 0 , j > 0 , x i = y j m a x { c ( i ? 1 , j ) , c ( i , j ? 1 ) ) } i > 0 , j > 0 , x i ? = y j c(i,j)=\begin{cases}0 \quad \quad \quad \quad i=0,j=0 \\ c(i-1,j-1) \quad \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \quad i>0,j>0,x_i=y_j\\ max\{c(i-1,j),c(i,j-1))\} \quad i>0,j>0,x_i\not=y_j\end{cases} c(i,j)=?????0i=0,j=0c(i?1,j?1)                        i>0,j>0,xi=yjmax{c(i?1,j),c(i,j?1))}i>0,j>0,xi?=yj 然后我們通過公式計算 c ( 1 , 1 ) c(1,1) c(1,1) ,因為 x 1 x_1 x1 和 y 1 y_1 y1 不相等,得出 c ( 1 , 1 ) = m a x { c ( 0 , 1 ) , c ( 1 , 0 ) } = 0 c(1,1)=max \{ c(0,1),c(1,0) \}=0 c(1,1)=max{c(0,1),c(1,0)}=0 。然后依次計算,就會得到圖中的值,然后得出 x x x 和 y y y 的最長公共子序列的長度為4。我們在計算的時候會發現一個規律:當 x i = y j x_i=y_j xi=yj 的時候 c ( i , j ) c(i,j) c(i,j) 的值為左上角格子的數加1;當 x i ? = y j x_i\not=y_j xi?=yj 的時候 c ( i , j ) c(i,j) c(i,j) 的值為左側格子和上邊格子中的較大的一個。

代碼實現

import sysstr1 = sys.argv[1]str2 = sys.argv[2]len1 = len(str1)len2 = len(str2)maxChildLen = 0lcs_ss = [[0 for i in range(len2 + 1)] for j in range(len1 + 1)]for i in range(1, len1 + 1):    for j in range(1, len2 + 1):        if str1[i-1] == str2[j-1]:            lcs_ss[i][j] = lcs_ss[i-1][j-1] + 1        else:            lcs_ss[i][j] = max(lcs_ss[i-1][j], lcs_ss[i][j-1])maxChildLen = lcs_ss[len1][len2]print("str1: %s" % str1)print("str2: %s" % str2)print("LCS: %s" % maxChildLen)

隨便輸入兩個字符串,然后觀察打印結果

str1: acedbaestr2: becadeacLCS: 3Process finished with exit code 0

若有任何問題,懇請不吝指正。

歡迎關注公眾號:「努力給自己看」

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四
亚洲狠狠丁香婷婷综合久久久| 亚洲男同1069视频| 影院欧美亚洲| 国产精品美女主播在线观看纯欲| 国产亚洲欧洲| 欧美在线观看网站| 亚洲日本欧美天堂| 国产精品日韩在线播放| 欧美日韩色综合| 久久先锋影音av| 亚洲一区二区三区四区视频 | 国产精品高精视频免费| 久久国产乱子精品免费女| 99精品国产一区二区青青牛奶| 国产性天天综合网| 国产视频久久久久久久| 亚洲精品久久久久久下一站 | 久久久精品五月天| 亚洲福利视频三区| 亚洲影院免费| 欧美另类视频在线| 欧美承认网站| 久久尤物电影视频在线观看| 亚洲欧美电影在线观看| 黄色一区三区| 欧美日韩精品一区二区三区| 欧美性猛交xxxx免费看久久久| 国产自产高清不卡| 国产精品高潮呻吟| 亚洲黄色免费| 欧美精品一区二区三区四区| 亚洲免费观看| 国产精品v日韩精品| 久久亚洲精品一区| 亚洲成色精品| 欧美视频不卡| 久久精品欧美日韩| 亚洲福利在线视频| 国产精品久久国产三级国电话系列| 亚洲在线免费视频| 欧美全黄视频| 国产精品伊人日日| 久久午夜电影网| 亚洲激情一区二区三区| 欧美大片91| 亚洲国产成人porn| 亚洲一区二区毛片| 欧美日本一道本| 亚洲精品久久视频| 欧美日韩国产a| 亚洲精品日韩一| 一区二区三区国产精华| 久久精品日韩欧美| 国产一区二区激情| 欧美小视频在线观看| 美腿丝袜亚洲色图| 久久视频免费观看| 欧美精品啪啪| 一区二区激情| 欧美三日本三级少妇三2023| 亚洲黄色免费| 国产精品www| 一区二区av在线| 欧美国产亚洲精品久久久8v| 在线观看亚洲精品| 免费中文日韩| 亚洲天堂男人| 欧美精品18| 午夜精品一区二区三区电影天堂 | 亚洲卡通欧美制服中文| 欧美激情视频给我| 欧美一区二区在线| 麻豆成人综合网| 久久视频这里只有精品| 国内精品视频在线观看| 国产精品久久久久久久午夜| 欧美va亚洲va国产综合| 免费成人在线视频网站| 久久免费精品视频| 午夜一区在线| 久久国产精品99精品国产| 亚洲欧美日韩国产另类专区| 99re这里只有精品6| 亚洲欧美成人在线| 国产精品v日韩精品| 激情国产一区二区| 欧美一区二区黄| 亚洲欧美日韩中文视频| 快she精品国产999| 国产亚洲精品aa午夜观看| 国产一区二区av| 亚洲欧美久久| 国产一区二区三区在线观看免费视频 | 日韩午夜精品| 宅男在线国产精品| 性视频1819p久久| 欧美人与性禽动交情品| 激情欧美一区二区| 亚洲在线免费| 欧美三日本三级少妇三99| 欧美激情小视频| 黄色成人小视频| 久久超碰97中文字幕| 欧美精品电影在线| 亚洲国产mv| 久久黄色小说| 久久成人综合视频| 午夜精品视频在线| 欧美日韩亚洲天堂| 欧美国产精品va在线观看| 99精品热视频只有精品10| 亚洲国产成人不卡| 亚洲国产精品精华液网站| 激情成人av在线| 一区二区三区在线视频免费观看| 国产精品美女久久久免费| 欧美性猛交xxxx免费看久久久| 欧美日本乱大交xxxxx| 欧美14一18处毛片| 欧美日韩久久| 亚洲国产精品成人久久综合一区| 国产欧美日韩在线播放| 国产欧美日韩一区二区三区在线| 国产欧美日韩在线观看| 影音先锋日韩精品| 香蕉乱码成人久久天堂爱免费| 亚洲第一色在线| 91久久夜色精品国产九色| 亚洲国产成人精品女人久久久 | 亚洲永久免费视频| 久久久精品性| 久久国产加勒比精品无码| 久久国产视频网站| 久久综合伊人77777麻豆| 麻豆国产精品777777在线| 久久综合给合久久狠狠狠97色69| 美女黄毛**国产精品啪啪| 免费成人在线观看视频| 欧美精品日韩精品| 欧美视频一区二区三区…| 欧美经典一区二区三区| 欧美视频在线观看 亚洲欧| 国产精品色午夜在线观看| 国产专区精品视频| 欧美日本一区| 国产精品日韩欧美一区| 国产在线精品二区| 亚洲在线1234| 欧美激情一区二区三区| 国产欧美精品久久| 欧美日韩日日骚| 91久久极品少妇xxxxⅹ软件| 国产精品国产福利国产秒拍| 国产资源精品在线观看| 国内一区二区三区| 欧美国产在线电影| 国产精品欧美一区二区三区奶水| 极品尤物一区二区三区| 欧美日韩国产综合网| 欧美aa在线视频| 亚洲成色999久久网站| 久久一区二区三区av| 国产欧美精品一区二区三区介绍 | 亚洲日韩视频| 亚洲精品在线一区二区| 欧美日韩精品久久| 亚洲一区二区精品| 国产欧美在线播放| 美日韩丰满少妇在线观看| 在线免费观看日本一区| 欧美久久久久久| 欧美在线免费| 日韩亚洲欧美一区二区三区| 国产精品腿扒开做爽爽爽挤奶网站| 中文久久精品| 久久免费高清| 一区二区三区欧美在线| 国产一区二区久久| 亚洲一区二区精品在线| 国产日韩欧美亚洲一区| 欧美日韩国产影院| 欧美日韩伊人| 国产精品二区三区四区| 欧美日韩在线观看一区二区三区| 亚洲精品视频一区| 在线激情影院一区| 国产偷久久久精品专区| 欧美精品在线免费观看| 美女黄色成人网| 久久久最新网址| 久久综合久久综合久久| 久久精品日产第一区二区三区| 亚洲一级在线| 亚洲一区二区影院| 亚洲欧美国产va在线影院| 欧美影院午夜播放| 欧美大秀在线观看| 国产精品网站一区| 国产精品理论片在线观看| 激情久久影院|