Problem: Minimum Operations to Convert Strings
Given two strings `word1` and `word2`, your task is to determine the minimum number of operations required to convert `word1` to `word2`. You are allowed to perform the following three operations:
1. Insert a character.
2. Delete a character.
3. Replace a character.
Write a function that takes in `word1` and `word2` as inputs and returns the minimum number of operations required.
Example 1:
Input: word1 = "horse", word2 = "ros"
Output: 3
Explanation:
horse -> rorse (replace 'h' with 'r')
rorse -> rose (remove 'r')
rose -> ros (remove 'e')
Example 2:
```
Input: word1 = "intention", word2 = "execution"
Output: 5
Explanation:
intention -> inention (remove 't')
inention -> enention (replace 'i' with 'e')
enention -> exention (replace 'n' with 'x')
exention -> exection (replace 'n' with 'c')
exection -> execution (insert 'u')
Example 3:
Input: word1 = "kitten", word2 = "sitting"
Output: 3
Explanation:
kitten -> sitten (replace 'k' with 's')
sitten -> sittin (replace 'e' with 'i')
sittin -> sitting (insert 'g')
Example 4:
Input: word1 = "abc", word2 = "def"
Output: 3
Explanation:
abc -> dbc (replace 'a' with 'd')
dbc -> dbc (remove 'd')
dbc -> def (replace 'c' with 'f')
Java Code :
import java.util.Scanner;
public class MinOperationsToConvertStrings {
public static int minOperations(String word1, String word2) {
int m = word1.length();
int n = word2.length();
int[][] dp = new int[m + 1][n + 1];
for (int i = 0; i <= m; i++) {
for (int j = 0; j <= n; j++) {
if (i == 0) {
dp[i][j] = j;
} else if (j == 0) {
dp[i][j] = i;
} else if (word1.charAt(i - 1) == word2.charAt(j - 1)) {
dp[i][j] = dp[i - 1][j - 1];
} else {
dp[i][j] = 1 + Math.min(dp[i - 1][j - 1], Math.min(dp[i][j - 1], dp[i - 1][j]));
}
}
}
return dp[m][n];
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the first word: ");
String word1 = scanner.nextLine();
System.out.print("Enter the second word: ");
String word2 = scanner.nextLine();
scanner.close();
int operations = minOperations(word1, word2);
System.out.println("Minimum operations required: " + operations);
}
}
(code-box)
Boost your Java programming skills with these top 10 beginner-friendly Java programs! Check them out Clickhere.
🚀 Elevate Your Career with Studyecart! 📚📊
🔥 Get instant job notifications and ace interviews with Studyecart. 📌
Download#StudyecartApp #CareerBoost

