>>> from itertools import izip_longest
>>> s = 'A3G3A'
>>> ''.join(c*int(i) for c, i in izip_longest(*[iter(s)]*2, fillvalue=1))
'AAAGGGA'
假设格式可以是后跟整数的任何子字符串,整数可能超过一位,最后一个整数可能丢失:
>>> from itertools import izip_longest
>>> import re
>>> s = 'AB10GY3ABC'
>>> sp = re.split('(\d+)', s)
>>> ''.join(c*int(i) for c, i in izip_longest(*[iter(sp)]*2, fillvalue=1))
'ABABABABABABABABABABGYGYGYABC'
string = 'A3G3A'
expanded = ''
for character in string:
if character.isdigit():
expanded += expanded[-1] * (int(character) - 1)
else:
expanded += character
print(expanded)
管理所有案例的最小纯python代码。
对于
input="WA5OUH2!10"
,output
是WAAAAAOUHH!!!!!!!!!!
。+'a'
是因为输出延迟,所以在最后执行良好行为。假设格式总是一个字母后跟一个整数,最后一个整数可能丢失:
假设格式可以是后跟整数的任何子字符串,整数可能超过一位,最后一个整数可能丢失:
这里有一个简单的方法:
输出:AAAGGGA
它假定输入有效。它的限制是重复因子必须是一个数字,例如2-9。如果希望重复因子大于9,则必须对字符串执行稍微多一些的解析:
输出:daaaaaaaagggabc
相关问题 更多 >
编程相关推荐