保留满足递归条件的子数组数量

时间:2020-06-25 19:30:09

标签: variables recursion data-structures python-3.5 sub-array

因此,我做了一个递归函数,该函数为我提供了所有子数组,我想在这些子数组上应用条件,然后保留满足条件的子数组的数量。但是count变量的初始化一直困扰着我,请帮忙!

这是我的代码:

def printSubArrays(arr, start, end):
 if end == len(arr):
     return
 elif start > end:
     return printSubArrays(arr,0,end+1)

 else:
     dictio = arr[start:end + 1]
     print(dictio)
     if len(dictio)!=1:
         for i in range(len(dictio)):
             aand =1
             aand =aand & dictio[i]
         if aand %2 !=0:
             count=count+1
     return printSubArrays(arr,start+1,end)

arr=[1,2,5,11,15]
dictio=[]
count = 0
printSubArrays(arr,0,0)
print(count)

1 个答案:

答案 0 :(得分:0)

最常用的计数方法是使用辅助函数。因此,您可以让主体函数像这样调用一个助手:

def printSubArrays(arr, start, end):
   return _printSubArrays(arr, start, end, 0)

最后的0是计数。

然后每次递归时递增:

def _printSubArrays(arr, start, end, count):
 if end == len(arr):
     return count
 elif start > end:
     return _printSubArrays(arr,0,end+1, count + 1)

 else:
     dictio = arr[start:end + 1]
     print(dictio)
     if len(dictio)!=1:
         for i in range(len(dictio)):
             aand =1
             aand =aand & dictio[i]
         if aand %2 !=0:
             count=count+1
     return _printSubArrays(arr,start+1,end, count+1)