最長公共字串

2021-07-30 15:42:19 字數 810 閱讀 1394

#include #include #include #include //#include "customer.h"

using namespace std;

//最長公共字串——動態規劃

//假設需要求得字串為str1,str2。函式f(m,n)分別為 str1[m],str2[n]

//結尾的公共字串長度。

//有以下遞推公式: 遞推邊界

// f(m,n)=0 str1[m]!=str2[n] f(0,n)=0;

// f(m,n)=f(m-1,n-1)+1 str1[m]!=str2[n] f(m,0)=0;

int main()

; for (int i = 0; i < str1.length(); i++)

else

c[i][j] = 0;

} }int besti = 0, bestj = 0;

int count = 0;

for (int i = 0; i < str1.length(); i++)

} } cout << "最長公共字串長度: " << count << endl;

cout << "str1公共子串結束下標: " << besti << endl;

cout << "str2公共子串結束下標: " << bestj << endl;

return 0;

}

最長公共字串

牛客網的題目鏈結 對於兩個字串,請設計乙個時間複雜度為o m n 的演算法 這裡的m和n為兩串的長度 求出兩串的最長公共子串的長度。這裡的最長公共子串的定義為兩個序列u1,u2,un和v1,v2,vn,其中ui 1 ui 1,vi 1 vi 1,同時ui vi。給定兩個字串a和b,同時給定兩串的長度...

最長公共字串和最長公共子串行

給出兩個字串,找到最長公共子串,並返回其長度。建立乙個矩陣來儲存兩個字串出現相同字元的地方,比如 abccd 和 abcefc 就有 abccd a10000 b02000 c00300 e00040 f00000 c00100 這樣就有每次遇到相等的都加上下他的斜上方的位置的值,然後使用乙個max...

OJ最長公共字串

字串合併處理 00 小時 01 分 33 秒 描述 詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排訓後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的16進製...