input: Write a function to compute the edit distance between two strings. The function should return the minimum number of operations (insertion, deletion, and replacement) required to change one string into the other. The function should take two strings as input and return an integer representing the edit distance.
  
  def editDistance(string1, string2):
      m = len(string1)
      n = len(string2)
      
      # Create a 2D dp array
      dp = [[0 for x in range(n + 1)] for x in range(m + 1)]
      
      # Initialize the dp array
      for i in range(m + 1):
          dp[i][0] = i
      for j in range(n + 1):
          dp[0][j] = j
      
      # Fill the dp array
      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]
  
  assert editDistance("kitten", "sitting") == 3
  assert editDistance("intention", "execution") == 5
  assert editDistance("sunday", "saturday") == 3
  assert editDistance("apple", "apple") == 0
  assert editDistance("", "a") == 1
output: def editDistance(string1, string2):
      m = len(string1)
      n = len(string2)
      
      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]