查找前三个字母相同的段落中的所有单词?

时间:2015-10-18 18:18:22

标签: string algorithm data-structures pattern-matching stemming

我们如何以最佳方式解决这个问题?有没有解决这个问题的算法? “在一个段落中,我们必须找到并打印所有开头3个字母相同的单词。例如:我们输入一些段落,作为输出我们得到像 -

a)1。你2.你的3.你的4.你自己

b)1。早2.早3.最早

像这样,我们得到段落的所有单词,其中包含3个常用字母“

2 个答案:

答案 0 :(得分:0)

一个不太难编码的合理解决方案是维护某种地图,其中键是每个单词的前三个字母,值是以这三个字母开头的单词集。您可以扫描段落中的单词,并且对于您遇到的每个单词,修剪前三个单词,查找与这些单词对应的地图条目,并将该单词添加到列表中。然后,您可以在最后迭代地图,找到包含至少两个单词的所有集合,然后打印出您找到的每个集群。

总的来说,这种方法的运行时间是O(L),其中L是段落中所有单词的总长度。要看到这一点,请注意,对于每个单词,我们对该单词的常量大小的前缀进行地图查找,然后将该单词的所有字符复制到地图中。总的来说,这最多只访问每个角色一次。

答案 1 :(得分:0)

使用前三个字符然后单词index作为叶子应该可以解决问题。