鉴于文字(T)和字典(D),如何找到文字中出现的所有字词?
A1。可以假设 T 中只有少数字符重复,例如 T 是中文。< / p>
A2。正如人们可能怀疑的那样,对 D 进行迭代是非常昂贵的。因此,它应该预处理,分解或简单:应避免多次迭代。
A3。单词的上部长度为 L ,与文字相比相对较小。
B1。最简单的解决方案可能就是在我的 T 中为每个合理长度的子字符串迭代 D 。 这种方法绝对可以保证找到所有单词。然而,这似乎效率极低。
B2。另一个想法是迭代文本一次,检索集合中 T 中的所有字符,然后按 B1 继续找到所有的单词。
B3。此变体可以像 B2 一样工作,但是会使用/断言 D 是按字典顺序排列的。这意味着,它实际上只会检查具有相同起始字符的单词。 可能我还可以使用当前字符 T 之后的字符。我会在 T 上多次迭代 D 。然而,这似乎是可以承受的。
B4。在这里,我也会像 B3 一样继续,但是以这种方式重新排序 D ,更有可能发生先前检查了 T 字样。问题在于:我如何找出更有可能出现的词语?我必须先预先消化更多的数据,然后确定我测量的是实际上我想测量的数据。
当然,还有许多其他可能性,可能更复杂。但目前的艺术水平是什么?如何做到这一点/最好地解决这个问题?