【发布时间】:2022-01-05 12:11:24
【问题描述】:
我正在尝试通过其中一项 Codewars 挑战 ,,Exponential-Golomb Decoder”:https://www.codewars.com/kata/5e4d8a53b499e20016b018a0/swift
这个想法是以二进制格式输入:“001000000101111001010001101” -> 00100 000010111 1 00101 0001101
并返回解码后的数字列表:[3, 22, 0, 4, 12]
如果你给出 Sentence 例如 00100 00101,让我们看看你以 2 个前导零开头,然后点击 1,然后所以第一个结果数字是零个数+1+零个数(00+1+00),假设这个数字的长度是5,所以我想要像 sentence = [length:] 这样制作新句子并遍历它,但它不会遍历新句子,而是旧句子
有什么想法吗?非常感谢
def reccurent():
sentence = input("Enter the number:")
nums = []
number = ""
for i in sentence:
i = int(i)
if i == 0:
number += str(0)
else:
number += str(1)
if len(number) == 1:
nums.append(number)
number = ""
sentence = sentence[i:]
else:
length = len(number) + len(number) - 1
word = str(sentence[:length])
nums.append(word)
number = ""
sentence = sentence[length:]
print(nums)
reccurent()
结果 输入号码:0011000100
['00110', '1', '0100']
进程以退出代码 0 结束
应该是 ['00110','00100']
谢谢
【问题讨论】:
标签: python python-3.x binary exponential