Leetcode 379 Solution

This article provides solution to leetcode question 379 (design-phone-directory)

https://leetcode.com/problems/design-phone-directory

Solution

class PhoneDirectory:

    def __init__(self, maxNumbers: int):
        self.used = set()
        self.q = collections.deque()

        for i in range(0, maxNumbers):
            self.q.append(i)

    def get(self) -> int:
        if len(self.q):
            v = self.q.popleft()
            self.used.add(v)
            return v
        else:
            return -1

    def check(self, number: int) -> bool:
        return number not in self.used

    def release(self, number: int) -> None:
        if number not in self.used:
            return

        self.used.remove(number)
        self.q.append(number)


# Your PhoneDirectory object will be instantiated and called as such:
# obj = PhoneDirectory(maxNumbers)
# param_1 = obj.get()
# param_2 = obj.check(number)
# obj.release(number)