def decodeString(self, s: str) -> str:
stack = []
for i in range(len(s)):
ch = s[i]
if ch==']':
t = ""
while len(stack)>0 and stack[-1]!="[":
t+=stack[-1]
stack.pop()
stack.pop()
count = ""
#print(stack)
while len(stack)>0 and ord(stack[-1])-ord('0')>=0 and ord(stack[-1])-ord('0')<10:
count=stack[-1]+count
stack.pop()
stemp = int(count)*t[::-1]
for i in range(len(stemp)):
stack.append(stemp[i])
else:
stack.append(ch)
return "".join(stack)
stack = []
for i in range(len(s)):
ch = s[i]
if ch==']':
t = ""
while len(stack)>0 and stack[-1]!="[":
t+=stack[-1]
stack.pop()
stack.pop()
count = ""
#print(stack)
while len(stack)>0 and ord(stack[-1])-ord('0')>=0 and ord(stack[-1])-ord('0')<10:
count=stack[-1]+count
stack.pop()
stemp = int(count)*t[::-1]
for i in range(len(stemp)):
stack.append(stemp[i])
else:
stack.append(ch)
return "".join(stack)