【发布时间】:2021-12-13 10:09:48
【问题描述】:
我想使用递归而不使用 max() 或 min() 函数来获取列表中的最大奇数。
这就是我到目前为止写的:
def maxOdd(L):
if L[1:]:
#check odd numbers only
if L[0] % 2 == 1:
#get largest odd number
if L[0] > maxOdd(L[1:]):
return L[0]
else:
return maxOdd(L[1:])
else:
return maxOdd(L[1:])
#check if list is empty
elif not L:
return None
else:
return L[0]
但是效果不好,没有通过这个测试:
print('Testing maxOdd()...', end='')
assert(maxOdd([ ]) == None)
assert(maxOdd([ 2, 4, 6 ]) == None)
assert(maxOdd([ 2, 4, 6, 7 ]) == 7)
assert(maxOdd([ -1, -2, -3 ]) == -1)
assert(maxOdd([ 1,2,3,4,5,6,7,8,9,10,0,0,0,11,12 ]) == 11)
print('Passed!')
你能帮帮我吗?我被困了几个小时。 谢谢!
【问题讨论】: