use*_*465 -2 python algorithm encode
我想制作一种编码算法.所以我写了这段代码.但不起作用(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
Run Code Online (Sandbox Code Playgroud)
如果我使用"encode("11101")",它不起作用......
Traceback(最近一次调用最后一次):
文件"",第1行,in
编码( "1101")
文件"",第6行,编码
elif i ==(len(n-1)):
TypeError:不支持的操作数类型 - :'str'和'int'
在这种情况下我该怎么办?如何修改代码才能工作?
elif i==(len(n-1))
Run Code Online (Sandbox Code Playgroud)
这是有问题的一行.你试图从一个字符串中减去1.我想你真正想做的是:
len(n)-1
Run Code Online (Sandbox Code Playgroud)
为了避免这些错误,你应该给你的变量说出名字.input_string可能适合这里.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |