题目描述:
设计一个方法,找出任意指定单词在一本书中的出现频率。
你的实现应该支持如下操作:
WordsFrequency(book)构造函数,参数为字符串数组构成的一本书
get(word)查询指定单词在书中出现的频率
思路:
1、构建一个dict,用来储存每个单词出现的次数
2、如果要查询的单词在dict里,返回次数,否则返回0
代码:
超时了很多次,正确版本如下:
class WordsFrequency:
def __init__(self, book: List[str]):
self.words = {}
for i in book:
self.words[i] = self.words.get(i,0) +1
def get(self, word: str) -> int:
return self.words[word] if word in self.words else 0
超时版本如下:
class WordsFrequency:
def __init__(self, book: List[str]):
self.data = {}
for i in book:
self.data[i] = self.data.get(i,0) + 1
def get(self, word: str) -> int:
for key in self.data.keys():
if key[0] == word[0] :
if key[1:] == word[1:]:
return self.data[key]
return 0
不应该遍历,因为时间复杂度为O(n),应该查询word是否在里面