Design Phone Directory

Problem: Design Phone Directory

Code in Python:

class PhoneDirectory(object):

    def __init__(self, maxNumbers):
        """
        Initialize your data structure here
        @param maxNumbers - The maximum numbers that can be stored in the phone directory.
        :type maxNumbers: int
        """
        self.availability = [True] * maxNumbers
        self.numbers = range(maxNumbers)

    def get(self):
        """
        Provide a number which is not assigned to anyone.
        @return - Return an available number. Return -1 if none is available.
        :rtype: int
        """
        if self.numbers:
            self.availability[self.numbers[0]] = False
            res = self.numbers[0]
            self.numbers = self.numbers[1:]
            return res
        return -1

    def check(self, number):
        """
        Check if a number is available or not.
        :type number: int
        :rtype: bool
        """
        return self.availability[number]

    def release(self, number):
        """
        Recycle or release a number.
        :type number: int
        :rtype: void
        """
        if self.availability[number] == False:
            self.availability[number] = True
            self.numbers.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)

results matching ""

    No results matching ""