不用 Python 自带的 Dict 实现自己的 HashTable
这个题目其实源于很久之前的一次 Uber 面试,码工换工作无非就是刷 leetcode ,研究如何翻转二叉树之类的算法问题,所以头一次在电话里听到这道题的时候还是挺耳目一新的。当时顺利写出来了,也通过了电面,但觉得还是有不完善的地方,比如说代码不够 “Python” 等,所以趁着周天晚上闲着无事,又拿出来写了写。 HashTable 本身大家应该都很熟悉了,中文叫”哈希表“或者”散列表“,具体翻译看教材编写者的个人喜好。众所周知这个数据结构用来存储”键-值“结构的数据,可以做到常数级时间复杂度的查找,在日常搬砖中算是主力工具。实现一个 HashTable 其实就是实现两个部分 Hash 函数。这个函数能够读入一个可被 hash 的变量,输出一个整数。在本次实现中暂不考虑这一块,用 Python 自带的 hash 函数偷个懒 Hash 冲突的解决机制。成熟的方法有很多种,在这里只考虑