Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- str2Length=0
- str1Length=0
- def editDistUsingDynamicProg(str1, str2, str1Length, str2Length):
- dp = [[0 for x in range(str2Length)] for x in range(str1Length)]
- for i in range(0, str2Length-1):
- dp[str1Length-1][i] = 2 * (str2Length - 1 - i)
- for j in range(0, str1Length-1):
- print(str1Length - 1 - j)
- dp[j][str2Length-1] = 2 * (str1Length - 1 - j)
- for i in range(str1Length-2, -1, -1):
- for j in range(str2Length-2, -1, -1):
- if str1[i] == str2[j]:
- dp[i][j] = min(dp[i+1][j+1],
- dp[i+1][j]+2,
- dp[i][j+1]+2)
- else:
- dp[i][j] = min(dp[i+1][j+1]+1,
- dp[i+1][j]+2,
- dp[i][j+1]+2)
- print(str1)
- print(str2)
- print(str(str1Length)+" "+str(str2Length))
- print('\n'.join([''.join(['{:3}'.format(item) for item in row])
- for row in dp]))
- if __name__ == "__main__":
- print("Enter String 1:")
- str1 = input()
- print("Enter String 2:")
- str2 = input()
- str1Length=len(str1)
- str2Length=len(str2)
- editDistUsingDynamicProg(str1, str2, len(str1)+1, len(str2)+1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement