有一段字符串,由数字和[]里面元素组成,前面的数字代表重复的次数,中括号李的字符代表重复的重复的字符,写一段解压缩的程序。

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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐