【发布时间】:2014-08-03 17:07:56
【问题描述】:
我想做一个编码算法。所以我写了这段代码。但不起作用(Python)。
编码算法
示例:“11101”
编码算法
=> ([0]+[1]) + ([0]+[1]+[2]) + ([1]+[2]+[3]) + ([2]+[3 ]+[4]) + ([3]+[4])
=> (1+1) + (1+1+1) + (1+1+0) + (1+0+1) + (0+1)
=> 结果 = 23221
代码
def encode(n):
result=""
for i in range(0, len(n)):
if i==0:
result+=str(int(n[i])+int(n[i+1]))
elif i==(len(n-1)):
result+=str(int(n[i-1])+int(n[i]))
else:
result+=str(int(n[i-1])+int(n[i])+int(n[i+1]))
print result
如果我使用"encode("11101")",它就不起作用...
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在
编码("1101")
文件“”,第 6 行,在编码中
elif i==(len(n-1)):
TypeError: 不支持的操作数类型 -: 'str' 和 'int'
在这种情况下我该怎么办?如何修改代码才能工作?
【问题讨论】: