有一段字符串,由数字和[]里面元素组成,前面的数字代表重复的次数,中括号李的字符代表重复的重复的字符,写一段解压缩的程序。
1)原始报文长度不会超过1000,不考虑异常的情况 示例1 输入 3[k]2[mn] 输出 kkkmnmn 说明 k 重复3次,mn 重复2次,最终得到 kkkmnmn 示例2 输入 3[m2[c]] 输出 mccmccmcc 说明 m2[c] 解压缩后为 mcc,重复三次为 mccmccmcc”
#!/usr/bin/python
#-*- coding:utf-8 -*-
def decompression():
string = raw_input().strip()
i = 0
stack = []
total = ""
rtmp = ""
while i < len(string):
if string[i] == "]":
tmp = ""
while stack:
value = stack.pop()
if value.isalpha():
tmp += value
elif value.isdigit():
tmp = int(value) * tmp[:: -1]
else:
total +=tmp
stack.append(string[i])
i += 1
return total
result = decompression()
print result
|