Leetcode 72. Edit Distance
来源:互联网 发布:政府网络不能玩皮皮 编辑:程序博客网 时间:2024/06/06 03:40
Leetcode 72. Edit Distance
source url
题目描述
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
输入:两个字符串word1, word2
输出:需要修改、删除、插入的次数
思路
动态规划:用L(i,j)表示word1[0:i]与word2[0:j]的编辑距离
for i = 0,1, 2, ..., m: L(i,0) = ifor j = 0,1, 2, ..., n: L(0,j) = jfor i = 0,1, 2, ..., m: for j = 0,1, 2, ..., n: L(i,j) = min(L(i-1,j)+1, L(i,j-1)+1, diff+L(i-1,j-1))return L(m,n)
代码
class Solution {public: int minDistance(string word1, string word2) { if(word2.length()==0||word1.length()==0) return max(word2.length(),word1.length()); int L[word1.length()+1][word2.length()+1]; for(int i =0;i<=word1.length();i++) L[i][0] = i; for(int j =0;j<=word2.length();j++) L[0][j] = j; for(int i = 1;i<=word1.length();i++){ for(int j =1;j<=word2.length();j++){ if(j>=1&&i>=1){ int diff = (word1[i-1]!=word2[j-1]); L[i][j] = min(min(1+L[i-1][j],1+L[i][j-1]),diff+L[i-1][j-1]); } } } return L[word1.length()][word2.length()]; }};
0 0
- LeetCode 72. Edit Distance
- [LeetCode]72.Edit Distance
- LeetCode --- 72. Edit Distance
- [Leetcode] 72. Edit Distance
- [leetcode] 72.Edit Distance
- [leetcode] 72.Edit Distance
- Leetcode 72. Edit Distance
- LeetCode 72. Edit Distance
- leetcode 72. Edit Distance
- LeetCode 72. Edit Distance
- Leetcode 72. Edit Distance
- Leetcode:72. Edit Distance
- 【LeetCode】72. Edit Distance
- leetCode 72. Edit Distance
- [leetcode] 72. Edit Distance
- [LeetCode] 72. Edit Distance
- leetcode 72. Edit Distance
- leetcode 72. Edit Distance
- Linux--01--WEB服务器安装
- 图像处理中的形态学(二)
- Python 3 安装 BeautifulSoup
- java8新特性之函数式接口、lambda表达式、接口的默认方法、方法和构造函数的引用
- HDU
- Leetcode 72. Edit Distance
- 数论
- 小白记录
- creator/QT入门 & QT Creator 使用
- 最小深度
- 使用NDK编译成多个平台的代码
- 实现大文件上传的办法
- PL/SQL 变量与数据类型
- Android ViewPager无限循环实现底部小圆点动态滑动