Leetcode 1211 Solution
This article provides solution to leetcode question 1211 (iterator-for-combination)
Access this page by simply typing in "lcs 1211" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/iterator-for-combination
Solution
class CombinationIterator:
def __init__(self, characters: str, combinationLength: int):
self.chars = characters
self.pointers = list(range(combinationLength))
self.has_next = True
def next(self) -> str:
ans = "".join([
self.chars[pointer] for pointer in self.pointers
])
boundry = len(self.chars)
index = len(self.pointers) - 1
while index >= 0:
if self.pointers[index] + 1 < boundry:
break
boundry = self.pointers[index]
index -= 1
if index < 0:
self.has_next = False
else:
self.pointers[index] += 1
for i in range(index + 1, len(self.pointers)):
self.pointers[i] = self.pointers[i - 1] + 1
return ans
def hasNext(self) -> bool:
return self.has_next