程序以Python扩展表示为n(t)格式的字符串
假设我们有一个字符串s,它正在编码一个更长的字符串。s表示为的串联n(t),n(t)表示t的串联n次,并且t是常规字符串或它是递归的另一个编码字符串。我们必须找到的解码版本。
因此,如果输入类似于s=“3(pi)2(3(am))0(f)1(u)”,则输出将为“pipipiamamamamamamu”
在线示例
让我们看下面的实现以更好地理解-
class Solution:
def solve(self, s):
i = 0
def parse():
nonlocal i
ans = []
while i < len(s) and s[i] != ")":
if s[i].isdigit():
d = 0
while s[i].isdigit():
d = 10 * d + int(s[i])
i += 1
i += 1
segment = parse()
i += 1
ans.extend(segment for _ in range(d))
else:
ans.append(s[i])
i += 1
return "".join(ans)
return parse()
ob = Solution()
s = "3(pi)2(3(am))0(f)1(u)"
print(ob.solve(s))输入值
"3(pi)2(3(am))0(f)1(u)"输出结果
pipipiamamamamamamu