我试着用这种方法解决问题,但没有奏效。这是极客健忘的问题
arr = [1, 3, 4, 4, 7, 7]
def check(arr):
sums = sum(arr)
if arr == []:
sums = 0
else:
for i in range(len(arr)-1):
if arr[i] == 7:
sums = sums-arr[i]-arr[i+1]
else:
sums = sums
return sums发布于 2022-06-19 12:44:31
这个问题在定义“在它旁边”是什么时有点模糊,我认为它是后续的元素。
因此,我提出了一个约束的解决方案,即在序列的求和中忽略文字7和7后面的数字。
def check(seq):
return sum(n for i, n in enumerate(seq) if n != 7 and seq[i - (i != 0)] != 7)我在解决方案上所做的与需求相匹配的检查:
assert check([]) == 0, "Empty case"
assert check([1, 7, 8, 1]) == 2, "Exclude 7 and the number next to (8 is ignored) it"
assert check([1, 2, 3, 4, 5, 6, 7]) == 21, "Exclude 7"
assert check([7, 10]) == 0, "7 and 10 are ignored"如果您有一个指向原始代码挑战的链接,那么在这里发布它将是有帮助的。
发布于 2022-10-13 17:56:10
def realSum(mylist):
l1=0
v=[]
if len(mylist)>0:
for i in range(len(mylist)):
if mylist[i]==7:
if i not in v or v==[]:
if i!=len(mylist)-1:
v.append(i)
v.append(i+1)
else:
v.append(i)
for i in range(len(mylist)):
if i not in v:
l1+=mylist[i]
return l1
else:
return 0https://stackoverflow.com/questions/72676704
复制相似问题