def find_even_index(arr):
len_arr = len(arr)
for i in range(len_arr):
if sum(arr[:i]) == sum(arr[i:]) and sum(arr[:i]) != None and sum(arr[i:]) != None:
break
return i
我不明白如何绕过循环中的检查,我们不会得到 slice 的结果sum(arr[i:]) == 0,以及如何在循环中制作这种情况下的 slice?
以下是任务的条件:
您将获得一个整数数组。您的工作是获取该数组并找到一个索引 N,其中 N 左侧的整数之和等于 N 右侧的整数之和。如果没有索引会导致这种情况发生,请返回 -一。
例如:
假设给定数组 {1,2,3,4,3,2,1}:您的函数将返回索引 3,因为在数组的第 3 个位置,索引左侧的总和 ({ 1,2,3}) 和索引右侧的和 ({3,2,1}) 都等于 6。
让我们看看另一个。给定数组 {1,100,50,-51,1,1}:您的函数将返回索引 1,因为在数组的第一个位置,索引左侧 ({1}) 和索引右侧的总和 ({50,-51,1,1}) 都等于 1。
最后一个:给定数组 {20,10,-80,10,10,15,35} 在索引 0 左侧是 {} 右侧是 {10,-80,10,10,15,35 } 添加时它们都等于 0。(本题空数组等于0)索引0是左右两边相等的地方。
注意:请记住,在大多数编程/脚本语言中,数组的索引从 0 开始。
输入:一个长度为 0 < arr < 1000 的整数数组。数组中的数字可以是正整数或负整数。
输出:最低的索引 N,其中 N 的左边等于 N 的右边。如果你没有找到符合这些规则的索引,那么你将返回 -1。
注意:如果给定一个包含多个答案的数组,请返回正确的最低索引。
这段代码就足够了: