首页 > 微软面试真题+面试官改编leetcode思路(哈希篇-加更)
头像
田穆君(知乎同名)
编辑于 2020-06-24 12:19
+ 关注

微软面试真题+面试官改编leetcode思路(哈希篇-加更)

由于帖子的篇幅所限,我们会对每一个分类都提及,如果想深挖且时间充裕的同学可以报一下我的课,我总结了十类改编题,每一类都有多个改编的案例,一类需要四-五个小时的钻研。我们这里回过头最后再说一个哈希的改编案例,接下来我们要说array和linked list这对相爱相杀的兄弟。

我们接着来看一个哈希表的例子:

老规矩,先上原题:

给定string数组把所有“同构词”聚在一起。例:

["eat", "tea", "tan", "ate", "nat", "bat"],

返回:

[

["ate", "eat","tea"],

["nat","tan"],

["bat"]

]

说明:如果两个单词所组成的字母完全相同,只是字母位置不同,我们叫它们anagrams。

首先我们冷静分析一下,既然是用哈希表,一定要有适合做key的元素。那么需要找到适合的key,应该怎么去做呢?我们观察一下,"tea" 和“ate”只是存在顺序的区别,最终这两个单词能够被映射到同样的”同构词“,也就是我们的group需求,把anagram全凑起来,我们在每次哈希前,把字母排个序,那么所有anagram的哈希值就会一样。我们用string做key,不过需要将key排序后的结果当key,得解。

全部评论

(5) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐