zoukankan      html  css  js  c++  java
  • LintCode-编辑距离

    题目描述:

      给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。

      你总共三种操作方法:

    • 插入一个字符
    • 删除一个字符
    • 替换一个字符
    样例
      给出 work1="mart" 和 work2="karma"

      返回 3

     1 public class Solution {
     2     /**
     3      * @param word1 & word2: Two string.
     4      * @return: The minimum number of steps.
     5      */
     6     public int minDistance(String word1, String word2) {
     7         // write your code here
     8         int[][] dp = new int[word1.length()+1][word2.length()+1];
     9         
    10         for(int i=1;i<=word1.length();i++)
    11             dp[i][0] = i;
    12             
    13         for(int i=1;i<=word2.length();i++)
    14             dp[0][i] = i;
    15             
    16         for(int i=0;i<word1.length();i++){
    17             for(int j=0;j<word2.length();j++){
    18                 if(word1.charAt(i) == word2.charAt(j)){
    19                     dp[i+1][j+1] = Math.min(dp[i][j],Math.min(dp[i][j+1],dp[i+1][j])+1);
    20                 }else{
    21                     dp[i+1][j+1] = Math.min(dp[i][j+1]+1,Math.min(dp[i][j],dp[i+1][j])+1);
    22                 }
    23             }
    24         }
    25         return dp[word1.length()][word2.length()];
    26     }
    27 }
  • 相关阅读:
    MySQl查询语句大全
    并发编程三
    并发编程二
    并发编程
    网络编程
    面向对象高级进阶
    python中的面向对象和面向过程
    为什么还需要学习TypeScript
    Chrome 神器,神奇的技巧
    vue-property-decorator知识梳理
  • 原文地址:https://www.cnblogs.com/xiaocainiao2hao/p/5361379.html
Copyright © 2011-2022 走看看