https://leetcode.com/problems/decode-string/description/?envType=study-plan-v2&envId=leetcode-75

class Solution:
def decodeString(self, s: str) -> str:
stk = []
tmp = ''
n = ''
for i in s:
if i.isdigit():
n += i
elif i == '[':
stk.append(n)
stk.append(i)
n = ''
elif i.isalpha():
stk.append(i)
else:
while stk and stk[-1] != '[':
tmp = stk.pop() + tmp
stk.pop()
if stk and stk[-1].isdigit():
tmp = int(stk.pop()) * tmp
stk.append(tmp)
tmp = ''
return ''.join(stk)