#K93497. Edit Distance: Minimum Operations for String Conversion

    ID: 38432 Type: Default 1000ms 256MiB

Edit Distance: Minimum Operations for String Conversion

Edit Distance: Minimum Operations for String Conversion

You are given two strings. Your task is to compute the minimum number of operations required to convert the first string to the second string. The allowed operations are:

  • Insertion of a character
  • Deletion of a character
  • Replacement of a character

You can solve this problem by using dynamic programming. Define \(dp[i][j]\) as the minimum number of operations needed to convert the first \(i\) characters of the first string to the first \(j\) characters of the second string. The recurrence relation is given by:

\(dp[i][j] = \min\begin{cases} dp[i-1][j] + 1, \\ dp[i][j-1] + 1, \\ dp[i-1][j-1] + 1_{(s1[i] \neq s2[j])} \end{cases}\)

with the base cases \(dp[0][j] = j\) and \(dp[i][0] = i\). Your program should read input from standard input and output the answer to standard output.

inputFormat

The input consists of two lines. The first line contains the first string, and the second line contains the second string.

outputFormat

Output a single integer that represents the minimum number of operations required to convert the first string into the second string.

## sample
abc
abc
0