zoukankan      html  css  js  c++  java
  • leetcode--Edit Distance

    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

    public class Solution {
       /**
    	 * dynamic programming. Very basic problem.
    	 * @param word1 -String 
    	 * @param word2 -String
    	 * @return  int -number of modifications to change word1 to word2
    	 * @author Averill Zheng
    	 * @version 2014-06-24
    	 * @since JDK 1.7
    	 */
    	public int minDistance(String word1, String word2) {
    		int column = word1.length(), row = word2.length();
    		if(row == 0)
    			return column;
    		if(column == 0)
    			return row;
    		int[][] changes = new int[row + 1][column + 1];
    		for(int i = 0; i < column + 1; ++i)
    			changes[0][i] = i;
    		for(int i = 0; i < row + 1; ++i)
    			changes[i][0] = i;
    		for(int i = 1; i < row + 1; ++i){
    			for(int j = 1; j < column + 1; ++j){
    				if(word1.charAt(j - 1) == word2.charAt(i - 1))
    					changes[i][j] = Math.min(changes[i - 1][j - 1], 1 + Math.min(changes[i - 1][j], 
    							changes[i][j - 1]));
    				else
    					changes[i][j] = Math.min(1 + changes[i - 1][j - 1], 1 + Math.min(changes[i - 1][j], 
    							changes[i][j - 1]));
    			}
    		}
    	    return changes[row][column]; 
        }
    }
    

      

  • 相关阅读:
    openswitch db files
    openstack中虚拟机和其网络的联系方法 instance and network
    python操作db2和mysql ,ibm_db
    yum安装mariadb
    python 连接 db2
    db2操作 连接、备份、恢复db2
    su su
    linux 后台运行进程 fg bg ctrl+z nohup
    mysql 命令行
    IDEA-使用技巧
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3807282.html
Copyright © 2011-2022 走看看