打印所有子集与使用递归打印字符串或整数数组的所有子序列有以下不同之处:
下面是使用递归打印字符串或整数数组的所有子序列的示例代码:
def print_subsequences(arr, curr_idx, curr_subseq):
if curr_idx == len(arr):
print(curr_subseq)
return
# 不选择当前元素
print_subsequences(arr, curr_idx + 1, curr_subseq)
# 选择当前元素
print_subsequences(arr, curr_idx + 1, curr_subseq + [arr[curr_idx]])
# 示例调用
arr = [1, 2, 3]
print_subsequences(arr, 0, [])
以上代码将打印出整数数组 [1, 2, 3]
的所有子序列:
[]
[3]
[2]
[2, 3]
[1]
[1, 3]
[1, 2]
[1, 2, 3]
对于打印所有子集,可以使用类似的递归方法,但需要注意空集的处理。
领取专属 10元无门槛券
手把手带您无忧上云