from math import inf s = input() t = input() # dp[i][j]为s的前i个字符和t的前j个字符的编辑距离 # dp[0]=list(range(m+1)),dp[][0]=list(range(n+1)) # 那么关键递推式是什么呢? # if s[i-1]==t[j-1]:dp[i][j]=dp[i-1][j-1] # else:dp[i][j]可以是dp[i-1][j-1]+1或dp[i-1][j]+1或dp[i][j-1] # 总体思路和LCS(最长公共子序列)很像 n,m = len(s),len(t) dp = [[inf]*(m+1) for _ in range(n+1)] dp[0]=list(range(m+1)) for i in range(1,n+1): dp[i][0] = i for j in range(1,m+1): if s[i-1] == t[j-1]: dp[i][j] = dp[i-1][j-1] else: dp[i][j] = min(dp[i-1][j-1]+1,dp[i-1][j]+1,dp[i][j-1]+1) print(dp[n][m])