程序以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