input: Write a function to compute the edit distance between two strings in Python. The edit distance is the minimum number of operations required to transform one string into the other, where an operation can be an insertion, deletion, or substitution of a character.
  
  def editDistance(string1, string2, m, n):
      # Create an empty matrix
      dp = [[0 for x in range(n+1)] for x in range(m+1)] 
    
      # Filling the first column of the matrix
      for i in range(m+1): 
          dp[i][0] = i 
    
      # Filling the second column of the matrix 
      for j in range(n+1): 
          dp[0][j] = j 
    
      # Populate the matrix
      for i in range(1, m+1): 
          for j in range(1, n+1): 
    
              if string1[i-1] == string2[j-1]: 
                  dp[i][j] = dp[i-1][j-1] 
              else: 
                  dp[i][j] = 1 + min(dp[i][j-1],        # Insert
                                     dp[i-1][j],        # Remove 
                                     dp[i-1][j-1])      # Replace
    
      return dp[m][n] 
  
  # Test cases
  assert editDistance("kitten", "sitting", 6, 7) == 3
  assert editDistance("intention", "execution", 9, 10) == 5
  assert editDistance("geek", "gesek", 4, 5) == 1
  assert editDistance("", "", 0, 0) == 0
  assert editDistance("pear", "peach", 4, 5) == 2
output: def editDistance(string1, string2, m, n):
      dp = [[0 for x in range(n+1)] for x in range(m+1)] 
    
      for i in range(m+1): 
          dp[i][0] = i 
    
      for j in range(n+1): 
          dp[0][j] = j 
    
      for i in range(1, m+1): 
          for j in range(1, n+1): 
    
              if string1[i-1] == string2[j-1]: 
                  dp[i][j] = dp[i-1][j-1] 
              else: 
                  dp[i][j] = 1 + min(dp[i][j-1], dp[i-1][j], dp[i-1][j-1])
    
      return dp[m][n]