Skip to main content

EDIT DISTANCE PROBLEM - LEETCODE 72

 

Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.

You have the following 3 operations permitted on a word:

  1. Insert a character
  2. Delete a character
  3. Replace a character

Example 1:

Input: word1 = "horse", word2 = "ros"
Output: 3
Explanation: 
horse -> rorse (replace 'h' with 'r')
rorse -> rose (remove 'r')
rose -> ros (remove 'e')
Solution:- class Solution {
    public int minDistance(String word1, String word2) {
        
        if(word1.length()==0){
            return word2.length();
        }
         
        if(word2.length()==0){
            return word1.length();
        }
        if(word1.length()==0 && word2.length()==0){
            return 0;
        }
        
        int[][] result=new int[word1.length()+1][word2.length()+1];
        
        for(int i=0;i<=word1.length();i++){
            result[i][0]=i;
        }
            
          for(int j=0;j<=word2.length();j++){
            result[0][j]=j;
        }
        
        for(int i=1;i<=word1.length();i++){
            
           // System.out.println(" row "+i);
            
         for(int j=1;j<=word2.length();j++){
            
                if(word1.charAt(i-1)==word2.charAt(j-1)){
                 //   System.out.println("true");
                    result[i][j]=result[i-1][j-1];
                }
             else{
                 int min=Math.min(result[i-1][j],result[i][j-1]);
                 result[i][j]=Math.min(min,result[i-1][j-1])+1;
                // System.out.println("result[i][j] "+result[i][j]);
             }
        }
            
        }
        
        return result[word1.length()][word2.length()];
        
    }
}



https://leetcode.com/problems/edit-distance/

Comments

.

Popular posts from this blog

Adding Node at the End of Linked List

Adding Node at the End of Linked List:- The method takes two parameter one a head node of a linked list and other data too insert. public void addNodeEnd ( Node head , int data ) { if ( head == null ) { System . out . println ( "list is empty" ); return ; } Node node = new Node ( data ); Node temp = head ; while ( temp . next != null ) { temp = temp . next ; } temp . next = node ; } To Know the basic structure of the linked list click here

DEPTH FIRST SEARCH IN JAVA

DEPTH FIRST SEARCH IN JAVA public void dfs () { vertex [ 0 ]. visited = true ; displyVertex ( 0 ); stackobj . push ( 0 ); while (! stackobj . isEmpty ()) { int v = adjVertex (( Integer ) stackobj . peek ()); if ( v ==- 1 ) { stackobj . pop (); } else { vertex [ v ]. visited = true ; displyVertex ( v ); stackobj . push ( v ); } } }