n********5 发帖数: 323 | 1 一道面试题,是需要写一个函数getAnagram()
这个函数是定义在一个Class里面,这个Class还有一个函数addWord(),用来向这个类
加入任意
word。
我的思路是用hashtable,当add word的时候,把需要加入的word sort一遍,然后查找
hash,如
果已经存在,就是用linkedlist的方式,把新加的word link到最后。这样getAnagram(
)只需要遍
历一遍这个hashtable就可以知道当前输入的words 所有的Anagram。
如果考虑sort的时间复杂度是O(nlogn), hashtable的lookup是O(1),这个getAnagram(
)函数的效
率是O(nlogn),假设getAnagram()的pass in是需要查找的word。
这个思路还有什么其他办法可以优化的吗?或者还有其他思路吗?谢啦! |
n********5 发帖数: 323 | 2 update 一下另外的思路,可以是用BST来存anagram,或者trie,,不知道还有没有其
他方法。。。 |
s*w 发帖数: 729 | 3 到底是写一个还是两个函数,还是整个class带这两个函数? |
n********5 发帖数: 323 | 4 要求design整个class,包括写两个函数。
整个class带这两个函数,class design 我的思路是hashtable,Addword()我也有思路
,,不过
如果想看看能有更优解。
【在 s*w 的大作中提到】 : 到底是写一个还是两个函数,还是整个class带这两个函数?
|