亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

利用C++實現最長公共子序列與最長公共子串

2020-05-23 13:58:32
字體:
來源:轉載
供稿:網友

一、問題描述

子串應該比較好理解,至于什么是子序列,這里給出一個例子:有兩個母串

cnblogs

belong

比如序列bo, bg, lg在母串cnblogs與belong中都出現過并且出現順序與母串保持一致,我們將其稱為公共子序列。最長公共子序列(Longest Common Subsequence, LCS),顧名思義,是指在所有的子序列中最長的那一個。子串是要求更嚴格的一種子序列,要求在母串中連續地出現。在上述例子的中,最長公共子序列為blog(cnblogs, belong),最長公共子串為lo(cnblogs, belong)。

二、求解算法

對于母串X=<x1,x2,?,xm>X=<x1,x2,?,xm>, Y=<y1,y2,?,yn>Y=<y1,y2,?,yn> ,求LCS與最長公共子串。

暴力解法

假設 m<nm<n, 對于母串XX,我們可以暴力找出2m2m個子序列,然后依次在母串YY中匹配,算法的時間復雜度會達到指數級O(n∗2m)O(n∗2m) 。顯然,暴力求解不太適用于此類問題。

動態規劃

假設Z=<z1,z2,?,zk>Z=<z1,z2,?,zk>是XX與YY的LCS, 我們觀察到

     如果xm=ynxm=yn,則zk=xm=ynzk=xm=yn,有Zk−1Zk−1是Xm−1Xm−1與Yn−1Yn−1的LCS;

     如果xm≠ynxm≠yn,則ZkZk是XmXm與Yn−1Yn−1的LCS,或者是Xm−1Xm−1與YnYn的LCS。

因此,求解LCS的問題則變成遞歸求解的兩個子問題。但是,上述的遞歸求解的辦法中,重復的子問題多,效率低下。改進的辦法——用空間換時間,用數組保存中間狀態,方便后面的計算。這就是動態規劃(DP)的核心思想了。

DP 求解 LCS

用二維數組c[i][j]記錄串x1x2?xix1x2?xi與y1y2?yjy1y2?yj的LCS長度,則可得到狀態轉移方程

最長公共子序列,c,最長公共子序列c語言,c語言最長公共子串

代碼實現

public static int lcs(String str1, String str2) { int len1 = str1.length(); int len2 = str2.length(); int c[][] = new int[len1+1][len2+1]; for (int i = 0; i <= len1; i++) { for( int j = 0; j <= len2; j++) {  if(i == 0 || j == 0) {  c[i][j] = 0;  } else if (str1.charAt(i-1) == str2.charAt(j-1)) {  c[i][j] = c[i-1][j-1] + 1;  } else {  c[i][j] = max(c[i - 1][j], c[i][j - 1]);  } } } return c[len1][len2];}

DP 求解最長公共子串

前面提到了子串是一種特殊的子序列,因此同樣可以用DP來解決。定義數組的存儲含義對于后面推導轉移方程顯得尤為重要,糟糕的數組定義會導致異常繁雜的轉移方程??紤]到子串的連續性,將二維數組c[i][j]用來記錄具有這樣特點的子串——結尾同時也為為串x1x2?xix1x2?xi與y1y2?yjy1y2?yj的結尾——的長度。

得到轉移方程:

最長公共子序列,c,最長公共子序列c語言,c語言最長公共子串

最長公共子串的長度為 max(c[i,j]), i∈{1,?,m},j∈{1,?,n}max(c[i,j]), i∈{1,?,m},j∈{1,?,n} 。

代碼實現

public static int lcs(String str1, String str2) { int len1 = str1.length(); int len2 = str2.length(); int result = 0; //記錄最長公共子串長度 int c[][] = new int[len1+1][len2+1]; for (int i = 0; i <= len1; i++) { for( int j = 0; j <= len2; j++) {  if(i == 0 || j == 0) {  c[i][j] = 0;  } else if (str1.charAt(i-1) == str2.charAt(j-1)) {  c[i][j] = c[i-1][j-1] + 1;  result = max(c[i][j], result);  } else {  c[i][j] = 0;  } } } return result;}

總結

以上就是這篇文章的全部內容改了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
少妇激情综合网| 日韩电影大片中文字幕| 国产又爽又黄的激情精品视频| 欧美亚洲另类激情另类| 777午夜精品福利在线观看| 久久久久久国产三级电影| 91久热免费在线视频| 日韩欧美亚洲范冰冰与中字| 日韩av成人在线| 国产激情久久久久| 欧美日韩aaaa| 亚洲白拍色综合图区| 国产精品久久久久高潮| 日韩av中文字幕在线| 久久久久久久久亚洲| 亚洲在线视频福利| 亚洲精品v天堂中文字幕| 中文字幕日韩精品在线| 欲色天天网综合久久| 国产精品专区一| 欧美精品激情在线观看| 日韩欧美在线观看| 国外视频精品毛片| 中文字幕日韩免费视频| 日韩欧美高清在线视频| 亚洲美女视频网站| 国产精品久久久久久久久久三级| 色哟哟入口国产精品| **欧美日韩vr在线| 日韩视频―中文字幕| 日韩人体视频一二区| 久久中国妇女中文字幕| 欧美国产激情18| 国内精品400部情侣激情| 性色av一区二区三区| 亚洲成人网在线观看| 大胆欧美人体视频| 欧美日韩国产精品一区二区三区四区| 久久久久久久成人| 国产精品亚洲激情| 91久久久久久| 亚洲欧美日韩精品久久亚洲区| 国产亚洲精品一区二555| 亚洲缚视频在线观看| 黄色成人在线播放| 久久久午夜视频| 亚洲精品影视在线观看| 亚洲视频在线免费观看| 亚洲午夜激情免费视频| 欧美色xxxx| 日韩一区二区三区在线播放| 国产精品99久久久久久久久久久久| 亚洲国产高清高潮精品美女| 久久免费观看视频| 国产精品一区二区在线| 中文字幕国产日韩| 国产精彩精品视频| 国产精品久久在线观看| 午夜精品久久久久久久99热浪潮| 欧美日韩中文在线观看| 国产午夜精品美女视频明星a级| 亚洲精品97久久| 欧美综合国产精品久久丁香| 亚洲日本成人女熟在线观看| 色老头一区二区三区| 国产69久久精品成人看| 久久av.com| 国产精品影片在线观看| 国产精品视频一区二区高潮| 亚洲女人天堂成人av在线| 亚洲国产成人久久| 国产精品永久免费观看| 欧美日韩激情视频8区| 欧美高清视频一区二区| 欧美性受xxx| y97精品国产97久久久久久| 亚洲女同性videos| 久久99精品视频一区97| 亚洲日韩中文字幕| 亚洲国产中文字幕在线观看| 亚洲成人亚洲激情| 久热国产精品视频| 中国人与牲禽动交精品| 在线国产精品视频| 国产成一区二区| 日本国产欧美一区二区三区| 夜夜嗨av色综合久久久综合网| 北条麻妃一区二区三区中文字幕| 91午夜理伦私人影院| 久久人人爽人人爽人人片亚洲| 日韩在线观看免费全集电视剧网站| 一区二区欧美日韩视频| 91精品国产91久久久久久吃药| 欧美亚洲伦理www| 亚洲国产精品美女| 欧美日韩亚洲国产一区| 国产亚洲激情视频在线| 精品久久久久国产| 一区国产精品视频| 欧美国产日韩xxxxx| 成人午夜在线影院| 国产精品久久久久久av福利| 精品一区二区三区四区| 亚洲精品永久免费精品| 91精品中国老女人| 91av在线影院| 欧美成人手机在线| 欧美精品videosex牲欧美| 亚洲人成网7777777国产| 精品少妇v888av| 欧美成人免费小视频| 精品久久久久人成| 中文日韩电影网站| 国产精品v片在线观看不卡| 国产精品美女久久久久av超清| 国产欧美日韩精品丝袜高跟鞋| 91精品国产综合久久久久久蜜臀| 538国产精品视频一区二区| …久久精品99久久香蕉国产| 亚洲天堂视频在线观看| 欧美精品少妇videofree| 国产在线精品自拍| 久久视频免费在线播放| 久久久久久久999精品视频| 久99久在线视频| 亚洲国产精品专区久久| 国产精品久久久久久久久久99| 欧美日韩亚洲高清| 日韩av片永久免费网站| 成人写真福利网| xxx一区二区| 国产免费一区视频观看免费| 丝袜情趣国产精品| 日本精品视频在线观看| 日韩最新中文字幕电影免费看| 亚洲大胆人体av| 91精品国产自产在线老师啪| 日韩精品日韩在线观看| 亚洲黄色有码视频| 亚洲精品自产拍| 这里只有精品久久| 欧美成人第一页| 欧美黄色性视频| 精品国产鲁一鲁一区二区张丽| 国产精品女人久久久久久| 亚洲欧美国产va在线影院| 亚洲欧洲成视频免费观看| 亚洲国产精品99| 91在线高清免费观看| 欧美日韩色婷婷| 亚洲福利在线视频| 国产精品网址在线| 麻豆精品精华液| 亚洲天堂色网站| 日韩欧美在线免费| 国产精品精品国产| 国产欧美日韩精品丝袜高跟鞋| 欧美一区二三区| 色黄久久久久久| 亚洲久久久久久久久久久| 66m—66摸成人免费视频| 97香蕉久久夜色精品国产| 青青久久av北条麻妃海外网| 国内精品久久久久久久|