python 完成 n[str]解压缩

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值