Leetcode#72||Edit Distance
2015-08-18 18:05
323 查看
public class Solution {
public int minDistance(String word1, String word2) {
int m = word1.length();
int n = word2.length();
int[][] dist = new int[m + 1][n + 1];
for (int i = 0; i <= m; i++) {
dist[i][0] = i;
}
for (int j = 0; j <= n; j++) {
dist[0][j] = j;
}
for (int i = 1; i <= m; i++) {
char charA = word1.charAt(i - 1);
for (int j = 1; j <= n; j++) {
char charB = word2.charAt(j - 1);
if (charA == charB) {
dist[i][j] = dist[i - 1][j - 1];
} else {
int replace = dist[i - 1][j - 1];
int insert = dist[i][j - 1];
int delete = dist[i - 1][j];
dist[i][j] = Math.min(replace, Math.min(insert, delete)) + 1;
}
}
}
return dist[m]
;
}
}
public int minDistance(String word1, String word2) {
int m = word1.length();
int n = word2.length();
int[][] dist = new int[m + 1][n + 1];
for (int i = 0; i <= m; i++) {
dist[i][0] = i;
}
for (int j = 0; j <= n; j++) {
dist[0][j] = j;
}
for (int i = 1; i <= m; i++) {
char charA = word1.charAt(i - 1);
for (int j = 1; j <= n; j++) {
char charB = word2.charAt(j - 1);
if (charA == charB) {
dist[i][j] = dist[i - 1][j - 1];
} else {
int replace = dist[i - 1][j - 1];
int insert = dist[i][j - 1];
int delete = dist[i - 1][j];
dist[i][j] = Math.min(replace, Math.min(insert, delete)) + 1;
}
}
}
return dist[m]
;
}
}
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
- JavaScript中的object转换成number或string规则介绍