我写了一个旨在扩展字符串的代码。例如:
solve("3(ab)") = "ababab" -- "ab" repeats 3 times
我设法将输入字符串重写为更具可读性的方式。但是,我还没有找到重新格式化此字符串的方法,以便python可以执行该操作。我不熟悉.format方法。
def solve(st):
rewritten = ''
for i in range(len(st)-1):
if st[i].isdigit():
if st[i+1] == '(':
rewritten += st[i] + '*'
else:
rewritten += st[i]
elif st[i].isalpha():
if st[i+1] == '(' or st[i+1].isdigit():
rewritten += st[i] + '+'
else:
rewritten += st[i]
else:
rewritten += st[i]
rewritten += st[-1]
return rewritten
solve("k(a3(b(a2(c))))") #returns 'k+(a+3*(b+(a+2*(c))))', ideally 'kabaccbaccbacc'```
答案 0 :(得分:1)
您可以使用eval
function来评估最终的rewritten
字符串。您只需要用其他引号重写字符:
>>> eval('"k"+("a"+3*("b"+("a"+2*("c"))))')
'kabaccbaccbacc'