#include#includeview code#include
using
namespace
std;
const
int max = 1001
;int
maxlen[max][max];
int maxlen(string str1, string
str2)}}
return
maxlen[len1][len2];
}int
main()
string revs =str;
reverse(revs.begin(), revs.end());
int max_len =maxlen(str, revs);
cout
<< len - max_len <
}return0;
}
參考:這是很經典的動態規劃問題。注意其中二維動態陣列記憶體的分配和釋放。
int edit(conststring str1, const
string
str2)
}int dis =ptr[m][n];
//注意釋放記憶體
同樣用dp求子符串與其反串的最長公共子串的長度,然後用總長減去公共子串的長度即可。
編輯距離及編輯距離演算法
編輯距離概念描述 編輯距離,又稱levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。例如將kitten一字轉成sitting sitten k s sittin e i sitting g 俄...
編輯距離及編輯距離演算法
include include include using namespace std const int max 1001 int maxlen max max int maxlen string str1,string str2 return maxlen len1 len2 int main ...
編輯距離演算法
字串編輯距離 是一種字串之間相似度計算的方法。給定兩個字串s t,將s轉換成t所需要的刪除,插入,替換操作的數量就叫做s到t的編輯路徑。而最短的編輯路徑就叫做字串s和t的編輯距離。舉個例子 s eeba t abac 我們可以按照這樣的步驟轉變 1 將s中的第乙個e變成a 2 刪除s中的第二個e 3...