当人们在文本字段中键入文本时,在将其添加到文本框(用于聊天)之前,有一些我想要查找和过滤的单词。这包括它们不是空间拼接的例子,太空船中的单词空间。
通常使用哪种算法来达到这种目的?
我能想到的唯一算法是迭代每个单词的文本:
for each word to filter
for each char in string
if the substring from index of the first letter of word to the current index == word, do something with the word
end for each
end for each
有更好的,更多的O(n)方法吗?
由于
答案 0 :(得分:1)
Tries几乎可以用于此问题。
答案 1 :(得分:0)
通常使用哪种算法来达到这种目的?
正则表达式。如果您使用RE2,则会遇到最坏情况的O( n )匹配。您需要匹配(space ?ship|chocolate ?mousse)
等
答案 2 :(得分:0)
基本上,您正在尝试在目标字符串中搜索一组输入字符串。您可以使用这些算法
但是为了保持用户的打字速度,一个简单的正则表达式替换也可以。