日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编辑距离及编辑距离算法

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编辑距离及编辑距离算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

#include<iostream> #include<string> #include<algorithm> using namespace std;const int MAX = 1001; int MaxLen[MAX][MAX];int maxLen(string str1, string str2) {int len1 = str1.length();//int len2 = str2.length();//for (int i = 0; i < len1; i++)MaxLen[i][0] = 0;for (int j = 0; j < len2; j++)MaxLen[0][j] = 0;for (int i = 1; i <= len1; i++){for (int j = 1; j <= len2; j++){if (str1[i - 1] == str2[j - 1])MaxLen[i][j] = MaxLen[i - 1][j - 1] + 1;else{int temp = max(MaxLen[i - 1][j], MaxLen[i][j - 1]);MaxLen[i][j]=max(temp,MaxLen[i-1][j-1]);}}}return MaxLen[len1][len2]; } int main() {string str;int count = 0;while (cin >> str){int len = str.size();if (len == 1){cout << 1 << endl;continue;}string revs = str;reverse(revs.begin(), revs.end());int max_len = maxLen(str, revs);cout << len - max_len << endl;}return 0; } View Code

?

?

參考:http://www.cnblogs.com/biyeymyhjob/archive/2012/09/28/2707343.html

? ? ? ? ?這是很經典的動態規劃問題。注意其中二維動態數組內存的分配和釋放。

? ? ? ? ?

int edit(const string str1, const string str2) {int m = str1.size();int n = str2.size();//定義一個m*n的二維數組int **ptr = new int*[m+1];for (int i = 0; i < m + 1; i++)ptr[i] = new int[n + 1];//初始化for (int i = 0; i < m + 1; i++)ptr[i][0] = i;for (int j = 0; j < n + 1; j++)ptr[0][j] = j;for (int i = 1; i < m + 1; i++){for (int j = 1; j < n + 1; j++){int d;int temp = min(ptr[i - 1][j] + 1, ptr[i][j - 1] + 1);if (str1[i - 1] == str2[j - 1])d = 0;elsed = 1;ptr[i][j] = min(temp, ptr[i - 1][j - 1] + d);}}int dis = ptr[m][n];//注意釋放內存for (int i = 0; i < m + 1; i++){delete[] ptr[i];ptr[i] = nullptr;}delete[] ptr;ptr = nullptr;return dis;} int main() {string str1;string str2;cin >> str1;cin >> str2;edit(str1, str2);return 0; } View Code

?

?

2017騰訊實習題,求最長公共子串的:http://www.nowcoder.com/test/question/done?tid=4822903&qid=44802

?

同樣用DP求子符串與其反串的最長公共子串的長度,然后用總長減去公共子串的長度即可。

?

轉載于:https://www.cnblogs.com/573177885qq/p/5832328.html

總結

以上是生活随笔為你收集整理的编辑距离及编辑距离算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。