def partition(v, l):
if l == []:
return newList
for i in l:
if v == l[0]:
newList[0].append(i)
return partition(v, l[1:])
else:
newList[1].append(i)
return partition(v, l[1:])
newList = [[], []]
elementCounter= []
def countDistinct(l):
if l == []:
return len(elementCounter)
elif len(l)>0:
return (elementCounter + [partition(l[0], l)[0]]) + countDistinct(partition(l[1], l)[0])
print(countDistinct([1,1,1,1, 2,3,4,5,8,8,8,8]))
当我尝试通过countDistinct递归调用partition时,递归深度一直超过最大限制。我已经尝试了许多不同的方法来执行此操作,但它不起作用。分区本身可以很好地工作,但是如何使它与countDistinct一起使用?