705. 設(shè)計哈希集合(Python)

題目

難度:★☆☆☆☆
類型:數(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ū)留言~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 四、集合框架 1:String類:字符串(重點) (1)多個字符組成的一個序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 878評論 0 2
  • Java集合框架 Java平臺提供了一個全新的集合框架。“集合框架”主要由一組用來操作對象的接口組成。不同接口描述...
    小石38閱讀 460評論 0 0
  • 集合類框架的介紹: ![Java 集合類框架](https://upload-images.jianshu.io/...
    LynnGuo閱讀 805評論 0 1
  • 在編程中,常常需要集中存放多個數(shù)據(jù)。集合類主要負(fù)責(zé)保存、盛裝其他數(shù)據(jù),因此集合類也被稱為容器類。所有的集合類都位于...
    一一一二二三閱讀 492評論 0 1
  • 轉(zhuǎn)載自:Java集合框架實例 1- 介紹 集合是程序和語言的基本思想。應(yīng)用程序通常都會應(yīng)用到集合,例如雇員的信息,...
    01_小小魚_01閱讀 486評論 0 1

友情鏈接更多精彩內(nèi)容