Design Phone Directory
这道题应该想到利用哈希表本身的无序随机性,我们可以生成各种不同的组合
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.store = set([x for x in xrange(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
"""
return self.store.pop() if self.store else -1
def check(self, number):
"""
Check if a number is available or not.
:type number: int
:rtype: bool
"""
return number in self.store
def release(self, number):
"""
Recycle or release a number.
:type number: int
:rtype: void
"""
self.store.add(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)