s = "3[a]2[bc]", return "aaabcbc".
s = "3[a2[c]]", return "accaccacc".
s = "2[abc]3[cd]ef", return "abcabccdcdcdef".
1 class Solution(object):
2 def decodeString(self, s):
3 """
4 :type s: str
5 :rtype: str
6 """
7
8 stack=[]
9 curNum=0
10 curStr=''
11
12 for ch in s:
13 if ch=='[':
14 stack.append(curStr)
15 stack.append(curNum)
16 curStr=""
17 curNum=0
18 elif ch==']':
19 num=stack.pop()
20 preStr=stack.pop()
21 curStr=preStr+num*curStr
22 elif ch.isdigit():
23 curNum=curNum*10+int(ch)
24 else:
25 curStr+=ch
26
27 return curStr