我的朋友在一次采访中遇到了这个问题。我们得到一个包含一些句子的文件。句子只有 0-9, az, AZ 和句号(.) ,我们需要读取文件并以查询更快的方式存储。这个阶段所花费的时间不是问题。这里查询将包含一些单词,我们需要返回包含所有这些单词的最小子字符串。顺序并不重要。(注意:假设整个文件可以放在主存中)
例如,如果文件是:“Ram 正在攻读计算机科学学位。Ram 家里有电脑。Ram 现在在家。”
查询 1:"Ram computer a" 输出:"Ram has a computer" 查询 2:"Ram home" 响应:"home.Ram"
我想将文件存储为一个链接列表,其中每个节点都由一个单词组成。如果是最后一个单词,则单词+句号存储在节点中。在查询时,我们需要遍历 LL 并找到包含所有单词的最小字符串。
我们如何进一步优化它?我们可以以更好的方式存储文件吗?