#C10885. Edit Distance: Transforming Strings with Minimum Operations

    ID: 40139 Type: Default 1000ms 256MiB

Edit Distance: Transforming Strings with Minimum Operations

Edit Distance: Transforming Strings with Minimum Operations

In this problem, you are given two strings S1 and S2. Your task is to compute the minimum number of operations required to transform S1 into S2 using the following operations:

  • Insert a character
  • Delete a character
  • Replace a character

The problem can be mathematically formulated using dynamic programming. The recurrence relation is given by: $$ dp[i][j] = \begin{cases} j & \text{if } i = 0,\\ i & \text{if } j = 0,\\ dp[i-1][j-1] & \text{if } S_1[i-1] = S_2[j-1],\\ 1+\min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) & \text{otherwise.} \end{cases} $$ where dp[i][j] represents the minimum edit distance between the first i characters of S1 and the first j characters of S2.

Your solution must read input from standard input (stdin) and output the answer to standard output (stdout) in a single line.

inputFormat

The input consists of two lines. The first line contains the string S1 and the second line contains the string S2. Both strings may be empty.

outputFormat

Output a single integer which represents the minimum number of operations required to convert S1 into S2.

## sample
kitten
sitting
3