登录
  • #刷题

27‌‌‌‌‍‍‌‍‌‌‍‍‍‌‌‍‌‌‍‍‌‌‍‍‌‍‌‍‌‌‌‌1. Encode and Decode Strings 关于decode一处改动写法问题。。。。。。。。。。。

ATPtennis
274
1
代码如下:

class Codec:

def encode(self, strs: [str]) -> str:

strr = ""

for string in strs:

strr += str(len(string)) + ":" + string

return strr

def decode(self, s: str) -> [str]:

result = [][br]
start = 0

while start < len(s):

delimiter = s.find(":", start)

start = delimiter + 1 + int(s[start:delimiter])

result.append(s[delimiter+1:start])

return result

以strs = ["ab", "cd"]为例。

想问的是:这题首先编码以后,得到字符串"2:ab2:cd"。然后下面进行解码。

找分隔符用的是delimiter = s.find(":", start)。这里我想问一下分隔符不就是在start的下一个吗?这里直接定义成delimiter = start + 1为什么不行?

然而当我按照以上定义后,报错:invalid literal for int() with base 10: "B", 显示错误在这行start = delimiter + 1 + int(s[start:delimiter])。

谢谢大家帮忙解惑!!!!!!
1条回复
热度排序

发表回复