問題描述:設a和b是2個字串。要用最少的字元操作將字元a轉化為字元b。
字元操作包括:
(1)刪除乙個人字元。
(2)插入乙個字元。
(3)將乙個字元改為另乙個字元。
將字串a變換為字串b所用的最少字元運算元稱為字串a到b 的編輯距離,記為d(a,b)。設計乙個演算法,對給定的任意兩個字串a和b計算出他們的編輯距離d(a,b).
例如:輸入:
fxpimu
xwrs
輸出:5
分析:
動態規劃演算法**:
// 編輯距離問題.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include#include#define maxnum 65535
using namespace std;
int minvalue(int a,int b,int c)
int _tmain(int argc, _tchar* argv)
} cout<
return 0;
}
編輯距離問題
編輯距離問題 給定兩個字串s和t,對於t我們允許三種操作 1 在任意位置新增任意字元 2 刪除存在的任意字元 3 修改任意字元 問最少操作多少次可以把字串t變成s?例如 s abcf t dbfg 那麼我們可以 1 把d改為a 2 刪掉g 3 加入c 所以答案是3。輸入 第1行 字串a a的長度 1...
編輯距離問題
給定兩個字串s和t,對於t我們允許三種操作 1 在任意位置新增任意字元 2 刪除存在的任意字元 3 修改任意字元 問最少操作多少次可以把字串t變成s?例如 s abcf t dbfg 那麼我們可以 1 把d改為a 2 刪掉g 3 加入c 所以答案是3。輸入 第1行 字串a a的長度 1000 第2行...
編輯距離問題
n題目描述 假設字串的基本操作僅為 刪除乙個字元 插入乙個字元和將乙個字元修改成另乙個字元這三種操作。我們把進行了一次上述三種操作的任意一種操作稱為進行了一步字元基本操作。下面我們定義兩個字串的編輯距離 對於兩個字串a和b,通過上述的基本操作,我們可以把a變成b或b變成a,那麼字串a變成字串b需要的...