Leetcode72. Edit Distance
来源:互联网 发布:install ubuntu 编辑:程序博客网 时间:2024/05/29 16:18
题目来源:Leetcode
Given two words word1 and word2, find the minimum number of steps required to convertword1 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
思路:
将两个字符串分别构成行和列 * dp[i][j]表示word1(0...i)转换为word(0.。。j)所需要的步数
我自己的代码通过率:1143/1146
class Solution { public int minDistance(String word1, String word2) { int len1=word1.length(); int len2=word2.length(); if(word1.length()==0) return word2.length(); if (word2.length()==0) return word1.length(); int dp[][]=new int[len1][len2]; if (word1.charAt(0)==word2.charAt(0)) dp[0][0]=0; else dp[0][0]=1; for (int i=1;i<len1;i++){ if (word1.charAt(i)==word2.charAt(0)) dp[i][0]=dp[i-1][0]; else dp[i][0]=dp[i-1][0]+1; } for (int i=1;i<len2;i++){ if (word1.charAt(0)==word2.charAt(i)) dp[0][i]=dp[0][i-1]; else dp[0][i]=dp[0][i-1]+1; } for (int i=1;i<len1;i++){ for (int j=1;j<len2;j++){ if (word1.charAt(i)==word2.charAt(j)) dp[i][j]=dp[i-1][j-1]; else { //if(i==j) // dp[i][j]=Math.min(dp[i-1][j-1],dp[i][j-1])+1; dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1; } } } return dp[len1-1][len2-1]; }}
修正:
public int minDistance(String word1, String word2) { int len1=word1.length()+1; int len2=word2.length()+1; if(word1.length()==0) return word2.length(); if (word2.length()==0) return word1.length(); int dp[][]=new int[len1][len2]; 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=1;i<len1;i++){ for (int j=1;j<len2;j++){ if (word1.charAt(i-1)==word2.charAt(j-1)) dp[i][j]=dp[i-1][j-1]; else { //if(i==j) // dp[i][j]=Math.min(dp[i-1][j-1],dp[i][j-1])+1; dp[i][j]=Math.min(Math.min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1; } } } return dp[len1-1][len2-1]; }
阅读全文
0 0
- leetcode72.Edit Distance
- leetcode72 Edit Distance
- edit distance问题 leetcode72
- Leetcode72. Edit Distance
- leetcode72. Edit Distance
- LeetCode72 Edit Distance
- LeetCode72——Edit Distance
- edit distance
- Edit Distance
- edit distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- Edit Distance
- CSS3自定义滚动条样式
- Linux命令参考手册
- 51nod四级题小记
- 剑指offer63二叉搜索树的第k个节点
- [HDU
- Leetcode72. Edit Distance
- 神经网络和深度学习(三)——反向传播工作原理
- sort -- 文本排序工具
- Asteroids
- Hadoop学习笔记(一)
- 关于spring的配置文件总结
- Java的插入排序
- IP 地址冲突检测(解决某种情况下 arp 机制无效的问题)
- effective C++ 条款十七解读