題目
難度:★☆☆☆☆
類型:數(shù)組
不使用任何內(nèi)建的哈希表庫設(shè)計一個哈希集合
具體地說,你的設(shè)計應(yīng)該包含以下的功能
add(value):向哈希集合中插入一個值。
contains(value) :返回哈希集合中是否存在這個值。
remove(value):將給定值從哈希集合中刪除。如果哈希集合中沒有這個值,什么也不做。
示例:
MyHashSet hashSet = new MyHashSet();
hashSet.add(1);
hashSet.add(2);
hashSet.contains(1); // 返回 true
hashSet.contains(3); // 返回 false (未找到)
hashSet.add(2);
hashSet.contains(2); // 返回 true
hashSet.remove(2);
hashSet.contains(2); // 返回 false (已經(jīng)被刪除)
注意
所有的值都在 [1, 1000000]的范圍內(nèi)。
操作的總數(shù)目在[1, 10000]范圍內(nèi)。
不要使用內(nèi)建的哈希集合庫。
解答
這道題有點為難python,如果不用這么好用的集合和列表,似乎沒有辦法去實現(xiàn)了。
集合
class MyHashSet:
def __init__(self):
self.set = set([])
def add(self, key: int) -> None:
self.set.add(key)
def remove(self, key: int) -> None:
if self.contains(key): self.set.remove(key)
def contains(self, key: int) -> bool:
return key in self.set
列表
class MyHashSet:
def __init__(self):
"""
Initialize your data structure here.
"""
self.set = []
def add(self, key: int) -> None:
if not self.contains(key):
self.set.append(key)
def remove(self, key: int) -> None:
if self.contains(key):
self.set.remove(key)
def contains(self, key: int) -> bool:
"""
Returns true if this set contains the specified element
"""
return key in self.set
如有疑問或建議,歡迎評論區(qū)留言~