【发布时间】:2021-12-08 14:34:29
【问题描述】:
我有一个字符串 S='n1,n2,n3.......nk' (例如'3,0,4,0,3,1,0,1,0,1,0,0 ,5,0,4,2') 和一个数字 m= S (es 9)。我想知道 sum 等于 m 的子串有多少。
我使用了这个似乎有效的代码。我有一个 1 秒的超时时间,这段代码在几毫秒的测试中失败了,并且有很长的数字字符串。我该如何优化它?
m = 9
numbers = list(map(int,S.split(",")))
result = 0
sums = numbers
for i in range(len(numbers)):
result += sums.count(m)
sums = [a+b for a,b in zip(sums,numbers[i+1:]) ]
print(result)```
【问题讨论】:
-
你可以试试递归函数,或者
itertools.combinations -
这是哪里来的?我们可以自己在某个地方在线测试吗?有什么限制?
标签: python string list substring