Iterator for Combination LeetCode solution in Python

1
class CombinationIterator:
2

3
def __init__(self, characters: str, combinationLength: int):
4
self.characters = characters
5
self.n = len(characters)
6
self.combinations = gen_combinations(self.n, combinationLength)
7
self.ind = len(self.combinations) - 1
8

9
def next(self) -> str:
10
s = ""
11
for i in range(self.n):
12
if self.combinations[self.ind][i] != "0":
13
s += self.characters[i]
14
self.ind -= 1
15
return s
16

17
def hasNext(self) -> bool:
18
return self.ind > -1
19

20

21
def gen_combinations(l, n):
22
end = int("1" * l, 2)
23
ans = []
24
for i in range(end + 1):
25
b = bin(i)[2:]
26
if b.count("1") == n:
27
ans.append(b.zfill(l))
28
return ans

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0