我想写一个函数来组合括号中相邻的数字。 例如,这个字符串作为输入
(4)2(2)(2)(2)2(2)
我希望输出是
(4)2(6)2(2)
例如,这个字符串作为输入
(2)(2)2(2)(2)(2)24
我希望输出是
(4)2(6)24
目前我写了一个函数如下:
def Combine(i,accumulate,s):
if s[i] == '(':
accumulate += int(s[i+1])
for i in range(i+3,len(s),3):
if s[i] == '(':
accumulate += int(s[i+1])
else:
print s[i-3] + s[i-2] + s[i-1]
i += 3
break
else:
print s[i]
i += 1
Combine(0,0,'(4)2(2)(2)(2)2(2)')
输出仅为:
(4)
我知道也许我需要递归方法,但我不知道如何正确使用它。 有人能帮我吗?你知道吗
我把它当作一位数的问题,求和之后,我需要把大于9的数字转换成相应的字母表。你知道吗
功能如下:
def toStr(n,base):
convertString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if n < base:
return convertString[n]
else:
return toStr(n//base,base) + convertString[n%base]
例如,输入(基数为17):
(16)
输出需要:
(G)
因为我不知道如何修改函数
re.sub(r'((\(\d\))+)', f, '(2)(2)(2)(2)(2)(2)(2)(2)')
谢谢。你知道吗
我会用正则表达式:
^{} 的第二个参数可以是一个函数,可以用来计算和:
m.group(1)
是匹配的字符串,m.group(1)[1::3]
是不带括号的匹配字符串。你知道吗sum(int(x) for x in m.group(1)[1::3])
获取字符串中所有数字的总和。你知道吗'({0})'.format(sum(int(x) for x in m.group(1)[1::3]))
用括号包装总和(这是替换字符串)。你知道吗请注意,上面的代码只适用于一位数。如果这是一个问题,你会使用
相关问题 更多 >
编程相关推荐