解压字符串
Decompressing string
我收到的是a3b4x2
形式的字符串,需要解压得到aaabbbbxx
。如果数字是固定的,比如这个例子,很容易解压。但是,输入可以是 a1192x12
的形式,需要解压得到 aaaaaaaaaaa99xxxxxxxxxxxx
或 31142
的形式得到 3333333333344
。最有效的方法是什么?
如果考虑一位或两位数字(不多)的字母出现次数,
您可以使用以下正则表达式查找字母 + 数字形式的对:
r"(\w)(\d{1,2})"
.
这是一个可能的解决方案:
import re
samples = ["a3b4x2", "a1192x12", "31142"]
for sample in samples:
result = ""
for couple in re.findall(r"(\w)(\d{1,2})", sample):
letter, number = couple
number = int(number)
result += letter * number
print(result)
你得到:
aaabbbbxx
aaaaaaaaaaa99xxxxxxxxxxxx
3333333333344
我收到的是a3b4x2
形式的字符串,需要解压得到aaabbbbxx
。如果数字是固定的,比如这个例子,很容易解压。但是,输入可以是 a1192x12
的形式,需要解压得到 aaaaaaaaaaa99xxxxxxxxxxxx
或 31142
的形式得到 3333333333344
。最有效的方法是什么?
如果考虑一位或两位数字(不多)的字母出现次数,
您可以使用以下正则表达式查找字母 + 数字形式的对:
r"(\w)(\d{1,2})"
.
这是一个可能的解决方案:
import re
samples = ["a3b4x2", "a1192x12", "31142"]
for sample in samples:
result = ""
for couple in re.findall(r"(\w)(\d{1,2})", sample):
letter, number = couple
number = int(number)
result += letter * number
print(result)
你得到:
aaabbbbxx
aaaaaaaaaaa99xxxxxxxxxxxx
3333333333344