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

TWO SUM -LEET CODE PROBLEM 1

   https://leetcode.com/problems/two-sum/ Given an array of integers  nums  and an integer  target , return  indices of the two numbers such that they add up to  target . You may assume that each input would have  exactly  one solution , and you may not use the  same  element twice. You can return the answer in any order.   Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6 Output: [0,1] class Solution {     public int[] twoSum(int[] nums, int target) {              HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();                  for(int i=0;i<nums.length;i++){                      ...

Best LeetCode Lists for Interviews

Here is a list of some of the best questions asked in interviews Must do Top interview questions Top 100 liked Must do 75  Must do 60  Must do medium Data structures Tree Graph  Dynamic Programming Company Interviews FaceBook interviews Amazon Interviews Google Interviews Github master List