python - 在 Python 中返回“无”的另一个递归(多个参数)
问题描述
我读了一些关于这个主题的文章,发现我必须返回函数而不是一个值......但在这种特定情况下我不能让它工作:
'''Recursive Solution'''
def find_even_index(arr, index=0):
#break condition if non found
if len(arr) == index:
return -1
#init sum vars
sum_up = 0
sum_down = 0
#calculate up
for x in range(0, index):
sum_up += arr[x]
print(sum_up)
#caculate down
for x in range(index + 1, len(arr)):
sum_down += arr[x]
print(sum_down)
#break condition if found
if sum_up == sum_down:
print('return: ', index)
return index
index = index + 1
find_even_index(arr, index)
以下是测试用例:
Test.assert_equals(find_even_index([1,2,3,4,3,2,1]),3)
Test.assert_equals(find_even_index([1,100,50,-51,1,1]),1,)
Test.assert_equals(find_even_index([1,2,3,4,5,6]),-1)
Test.assert_equals(find_even_index([20,10,30,10,10,15,35]),3)
Test.assert_equals(find_even_index([20,10,-80,10,10,15,35]),0)
Test.assert_equals(find_even_index([10,-80,10,10,15,35,20]),6)
Test.assert_equals(find_even_index(range(1,100)),-1)
Test.assert_equals(find_even_index([0,0,0,0,0]),0,"Should pick the first
index if more cases are valid")
Test.assert_equals(find_even_index([-1,-2,-3,-4,-3,-2,-1]),3)
Test.assert_equals(find_even_index(range(-100,-1))
这是初始任务:
您将获得一个整数数组。您的工作是获取该数组并找到一个索引 N,其中 N 左侧的整数之和等于 N 右侧的整数之和。如果没有索引会导致这种情况发生,请返回 - 1.
编辑:(解决方案)
好的,所以我想通了。我通读了有关该主题的其他不同问题,并得出结论,我应该以相反的方式完成,即在不成功的情况下返回函数。
所以我不得不将返回值放在函数的末尾,以防万一递归调用函数:
'''Recursive Solution'''
def find_even_index(arr, index=0):
#break condition if non found
if len(arr) == index:
return -1
#init sum vars
sum_up = 0
sum_down = 0
#calculate up
for x in range(0, index):
sum_up += arr[x]
#caculate down
for x in range(index + 1, len(arr)):
sum_down += arr[x]
#break condition if found
if sum_up != sum_down:
index = index + 1
return find_even_index(arr, index)
return index
解决方案
推荐阅读
- javascript - 在 for 语句中使用数组为 getElementById 选择 id 返回“null”
- c# - 使用服务器端没有 TotalPage 计数的数据表分页
- nginx - 如何使用 ffmpeg 将 boxblur 添加到 rtmp 流
- react-native - 如何在 react natve 中执行此步骤
- java - java.net.SocketException:RxJava onError 未捕获的套接字已关闭(单)
- redux - 类型错误:store__WEBPACK_IMPORTED_MODULE_0_.default.getStat 不是函数
- c# - 如何在asp.net Webform中从for循环打印到网站上的aspx页面
- php - 如何在可变产品的商店循环页面上添加 ajax 添加到购物车按钮?
- wordpress - 任何想法,下面的代码如何将一些服装循环分成几个部分?
- json - reactjs 不在 Object.assign 中运行函数