394. Decode String
class Solution:
def decodeString(self, s: str) -> str:
table = "0123456789"
size = len(s)
index = 0
res = ""
while index < size:
if s[index] in table: # 若遇到数字即进入解码
# 获取具体数字num
index, tmp = index+1, index
while s[index] in table:
index += 1
num = int(s[tmp:index])
# 获取该数字紧跟的中括号的内容并采用递归解码出中括号内的字符串
index, tmp = index+1, index+1
count = 1
while count:
if s[index] == '[':
count += 1
elif s[index] == ']':
count -= 1
index += 1
tmpstr = self.decodeString(s[tmp:index-1])
# 将中括号内的字符串重复num遍
for i in range(num):
res += tmpstr
else:
res += s[index]
index += 1
return res