我解码有问题。
首先,字符串'44444'
被编码为'54'
。(5乘4)
现在,当我想解码'54'
时,它是空的。
(它与字母一起工作)
该算法将字符串'4a3b2c'
解码为'aaaabbbcc'
。
现在,当我想解码'4a54'
时,它只给出'aaaa'
,但正确的解码是'aaaa44444'
。我怎样才能破译这个
代码如下:
def decode_RLE(x):
decode = ''
count = ''
for i in x:
if i.isdigit():
#append to count
count += i
else i:
decode += i * int(count)
count = ''
return decode
按照您的逻辑,您只需要一位数的长度。如果是这样,您可以这样迭代:
但对于两位数或更多位数的长度,这是行不通的
您可以尝试string multiplication:
输出:
您甚至可以使用列表:
这是由于第一个if条件。循环结束后,您将获得count=“54”和decode=”“。然后,函数返回一个空字符串
如果输入只有两位数字,从技术上讲,循环是不必要的。请尝试以下代码:
如果输入有两个以上的数字,循环和良好的老式切片应该可以工作:
相关问题 更多 >
编程相关推荐