Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 查找段落中前三个字母相同的所有单词?_String_Algorithm_Data Structures_Pattern Matching_Stemming - Fatal编程技术网

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

String 查找段落中前三个字母相同的所有单词?,string,algorithm,data-structures,pattern-matching,stemming,String,Algorithm,Data Structures,Pattern Matching,Stemming,我们怎样才能以最好的方式解决这个问题?有解决这个问题的算法吗? “在一个段落中,我们必须找到并打印所有以3个字母开头的单词。例如:我们输入一些段落,作为输出,我们得到如下字母- a) 1.你2.你的3.你的4.你自己 b) 1.早2.早3.早 这样,我们就得到了段落中所有以3个字母开头的单词,它们都是相同的“一个不太难编码的合理解决方案是维护一个某种映射,其中键是每个单词的前三个字母,值是以这三个字母开头的单词集。您可以扫描段落中的单词,对于遇到的每个单词,删掉前三个单词,查找与这些字母对应的地

我们怎样才能以最好的方式解决这个问题?有解决这个问题的算法吗? “在一个段落中,我们必须找到并打印所有以3个字母开头的单词。例如:我们输入一些段落,作为输出,我们得到如下字母-

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

b) 1.早2.早3.早


这样,我们就得到了段落中所有以3个字母开头的单词,它们都是相同的“

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


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

使用前三个字符进行测试,然后使用单词索引作为叶子来完成操作。

这个问题被称为使用词干分析。