我对代码厨师提出了一个问题,要求编辑距离的修改版本,它是编辑2个数字之间的距离,只允许删除操作和删除成本=删除数量。编辑编号距离特定实施。 PYTHON
所以我试图在python上实现。但是,让
TypeError: 'function' object has no attribute '__getitem__'
我在EditDisRec功能
这里得到这个错误在最后一行即回线是代码
def ISTHERE(x,y):
a=len(str(y))
b=y
for i in range(0,a):
if b%10 == x:
return(True)
break
else:
b=b/10
return(False)
def sum_digits(N):
n=int(N)
s = 0
while n:
s += n % 10
n //= 10
return s
def delt(x,y):
if int(x)==int(y):
return 0
else:
return int(x)+int(y)
def EditDistRec(S,T):
if S==0:
return sum_digits(T)
elif T==0:
return sum_digits(S)
elif (S==1 or S==2 or S==3 or S==4 or S==5 or S==6 or S==7 or S==8 or S==9):
if ISTHERE(S,T)==True :
return sum_digits(T) - S
elif ISTHERE(S,T)==False:
return sum_digits(T)
elif (T==1 or T==2 or T==3 or T==4 or T==5 or T==6 or T==7 or T==8 or T==9):
if ISTHERE(T,S)==True :
return sum_digits(S) - T
elif ISTHERE(T,S)==False:
return sum_digits(S)
return min(EditDistRec(S/10,T/10) + delt[S%10,T%10],(EditDistRec(S ,T/10) + int(T%10)),(EditDistRec(S/10,T) + int(S%10)))
print(EditDistRec(7315,713))
请提供完整的追踪和[MCVE。看到[问] –