编写一个递归函数“ minus_plus”,该函数接收包含非零整数的列表。如果列表的长度均匀,则该函数应返回“ true”,并且对于列表中的每个元素,都存在匹配对(例如,如果5在列表中,则为(-5))。在任何其他情况下,该函数都会返回false。
例如:
Minus_plus([ - 5,-7,2,5,-2,7])=true
这里是我编写的代码的开始,我无法完成递归:
def minus_plus(lst):
if len(lst) <= 1:
return False
elif len(lst)%2 != 0: #This deals with lst with len(lst)%2==1
return False
elif len(lst)==2: #The "optimal" case, possibly the base case for the recursion
return lst[0]==(-1)*lst[1]
您可以尝试
def minus_plus(lst):
if len(lst)%2:
return False
if len(lst)==2:
return sum(lst)==0
else:
x = sorted(lst)
return minus_plus(x[1:-1]) and (x[0]==-x[-1])