大致概念看鏈結
最長公共子串的矩陣追蹤技術
#includeusing namespace std;
const int maxn = 100;
int lcs[maxn][maxn];//構建lcs追蹤矩陣
string str1,str2;
string ans;
int lcs(int n,int m)
else
else
}return 0;
}int main()
else
}//追蹤是反向的所以這裡需要完成反轉
reverse(ans.begin(),ans.end());
cout《對於程式中的測試樣例,我發現公共字串並不唯一,這與那個鏈結裡的博主得到的答案並不相同。但是經過檢驗,都是正確答案而已。
ok
LCS最長公共子串行求解
include stdafx.h include include include include using namespace std int calclcs vectorx,vectory,int lcs,int row,int col int findmax int value1,int va...
最長公共子串LCS
找兩個字串的最長公共子串,這個子串要求在原字串中是連續的。其實這又是乙個序貫決策問題,可以用動態規劃來求解。我們採用乙個二維矩陣來記錄中間的結果。這個二維矩陣怎麼構造呢?直接舉個例子吧 bab 和 caba 當然我們現在一眼就可以看出來最長公共子串是 ba 或 ab b a b c 0 0 0 a ...
最長公共子串(LCS)
找兩個字串的最長公共子串,這個子串要求在原字串中是連續的。其實這又是乙個序貫決策問題,可以用動態規劃來求解。我們採用乙個二維矩陣來記錄中間的結果。這個二維矩陣怎麼構造呢?直接舉個例子吧 bab 和 caba 當然我們現在一眼就可以看出來最長公共子串是 ba 或 ab b a b c 0 0 0 a ...