class Solution:
def decodeString(self, s: str) -> str:
l=[0]
return self.dp(s,l)
def dp(self,s,l):
res=''
n=len(s)
while(l[0]<n and s[l[0]]!=']'):
if s[l[0]]<'0' or s[l[0]]>'9':
res+=s[l[0]]
l[0]+=1
else:
cont=0
while s[l[0]]>='0' and s[l[0]]<='9':
cont=cont*10+int(s[l[0]])
l[0]+=1
l[0]+=1
t=self.dp(s,l)
l[0]+=1
for c in range(cont):
res+=t
return res