Edit Distance(两字符串经过最少操作匹配)
来源:互联网 发布:php源码分享 编辑:程序博客网 时间:2024/06/06 10:15
72. Edit Distance
My SubmissionsTotal Accepted: 55602 Total Submissions: 195784 Difficulty: Hard
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2.
(each operation is counted as 1 step.)
You have the following 3 operations permitted on a word:
a) Insert a character
b) Delete a character
c) Replace a character
Subscribe to see which companies asked this question
Show Similar Problems
显然采用动态规划做:
用dp[n+1][m+1]表示需要执行的最少变换次数,则递推方程为:
- dp[i+1][j+1] = dp[i][j], 当word1[i] == word2[j]
- dp[i + 1][j + 1] = min(min(dp[i][j] + 1, dp[i][j + 1] + 1), dp[i + 1][j] + 1); 当word1[i] != word2[j]
class Solution{public: int minDistance(string word1, string word2) { int len1 = word1.size(), len2 = word2.size(); vector<vector<int>> dp(len1 + 1, vector<int>(len2 + 1)); // 左边沿初始化 for (int i = 0; i <= len1; ++i) dp[i][0] = i; // 右边沿初始化 for (int i = 0; i <= len2; ++i) dp[0][i] = i; for (int i = 0; i < len1; ++i) { for (int j = 0; j < len2; ++j) { if (word1[i] == word2[j]) dp[i + 1][j + 1] = dp[i][j]; else dp[i + 1][j + 1] = min(min(dp[i][j] + 1, dp[i][j + 1] + 1), dp[i + 1][j] + 1); } } return dp[len1][len2]; }};
0 0
- Edit Distance(两字符串经过最少操作匹配)
- 【LeetCode】72. Edit Distance单词变换的最少操作
- LeetCode | Edit Distance(字符串编辑距离)
- Edit Distance 字符串距离(重重)
- 72:Edit Distance【DP】【字符串】
- Edit Distance(dp)
- Edit Distance(LeetCode)
- LeetCode--Edit Distance(字符串编辑距离)Python
- Edit Distance || 计算字符串相似度
- 字符串-leetcode 72 Edit Distance
- 编辑距离(edit distance)
- LeetCode(72) Edit Distance
- edit distance
- Edit Distance
- edit distance
- Edit Distance
- Edit Distance
- Edit Distance
- C++实验三项目一
- 3.1.15 结构体的交互引用
- 1010. Radix (25)
- struts2中自定义拦截器
- 揭开“流量劫持”的神秘面纱
- Edit Distance(两字符串经过最少操作匹配)
- 3.1.16 函数的副作用
- AngularJS 1.x学习<2>
- Android中Application类用法
- 把 HTML 实体转换为字符:html_entity_decode() 函数
- 第四次上机作业
- poj 3041 Asteroids
- Servlet重定向和转发、如何将中文插入数据库
- 3.2.1 基本数据结构——binhash.c:哈希表