LeetCode Edit Distance
2015-11-12 07:03
393 查看
Description:
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
Solution:
classical edit distance
pay attention to the initialization circumstances, we can get dp[i][0] = i and dp[0][j] = j
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
Solution:
classical edit distance
pay attention to the initialization circumstances, we can get dp[i][0] = i and dp[0][j] = j
<span style="font-size:18px;">import java.util.*; public class Solution { public int minDistance(String word1, String word2) { if (word1 == null) return 0; if (word2 == null) return 0; int n = word1.length(); int m = word2.length(); if (n == 0) return m; if (m == 0) return n; int dp[][] = new int[n + 1][m + 1]; for (int i = 0; i <= n; i++) dp[i][0] = i; for (int j = 0; j <= m; j++) dp[0][j] = j; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { if (word1.charAt(i - 1) == word2.charAt(j - 1)) dp[i][j] = Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1]) + 1); else dp[i][j] = Math.min(dp[i - 1][j - 1] + 1, Math.min(dp[i - 1][j], dp[i][j - 1]) + 1); } return dp [m]; } }</span>
相关文章推荐
- ——黑马程序员——OC中NSNumber、NSValue、NSDate 的使用总结
- hadoop配置文件及常用配置
- Longest Increasing Subsequence
- android94 样式和主题
- Ubuntu kylin-14.04 下配置 Hadoop 二:安装hadoop(单机模式)
- Use Unicode and Hide the Console in Windows
- LeetCode 32 Longest Valid Parentheses
- HTML5笔记T0000001:HTML5三大类元素--元数据元素
- Ubuntu kylin-14.04 下配置 Hadoop 一:环境配置
- MySQL长度、大小写验证问题[开发篇]
- 《如何在大学里脱颖而出(How to Win at College)》读书笔记
- visio制作图形的基本技巧
- LeetCode Longest Valid Parentheses
- LeetCode Word Ladder II
- VTK 6 和 VTK 5 的不同
- LVS负载均衡集群技术学习笔记
- ———
- ++
- 在Canvas中绘制圆角矩形
- LeetCode 31 Next Permutation