From d60545c9d99407e7cd4bd1a61b4d5bac65dbb747 Mon Sep 17 00:00:00 2001 From: codecrafter10 <167860225+codecrafter10@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:31:05 +0530 Subject: [PATCH] Create Refactored ArrayCombination Class --- Refactored ArrayCombination Class | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Refactored ArrayCombination Class diff --git a/Refactored ArrayCombination Class b/Refactored ArrayCombination Class new file mode 100644 index 000000000000..a2a714c4b032 --- /dev/null +++ b/Refactored ArrayCombination Class @@ -0,0 +1,22 @@ +#Refactored ArrayCombination Class +from itertools import combinations + +class ArrayCombination: + def __init__(self, arr): + if not isinstance(arr, list): + raise ValueError("Input should be a list.") + self.arr = arr + + def get_combinations(self, length=None): + """ + Generate all combinations of the array. + If length is provided, generate combinations of that length. + """ + if length is None: + # Generate combinations of all lengths from 1 to len(arr) + return [list(combo) for r in range(1, len(self.arr) + 1) for combo in combinations(self.arr, r)] + elif isinstance(length, int) and 0 < length <= len(self.arr): + # Generate combinations of specified length + return [list(combo) for combo in combinations(self.arr, length)] + else: + raise ValueError("Invalid combination length")