11
6 月
2020
算法题-解多重压缩字符串
题目:形如[2AE]表示AEAE,[2[2EB]A]表示EBEBAEBEBA…这种压缩规则为数字表示压缩次数范围1-99,压缩内容都是大写字母。现在给一个压缩字符串为输入,求解压缩的原文。
思路:通过正则表达式匹配到”[数字字母]”这种严格格式,每次匹配完就立即展开,直到再也没有[号或者]号出现。
import re
def Solution(S:str)->str:
while '[' in S:
for code in re.findall('\[[0-9]+[A-Z]+\]', S):
info = re.findall('\[([0-9]+)([A-Z]+)\]', code)[0]
S = S.replace(code, info[1]*int(info[0]))
return S
博客很棒 欢迎回访我哦
这正则写的规整
文章不错关注一下