所以基本上我的意思是我如何制作一个搜索工具(比如搜索一系列字符串,可能是数组或arraylist等)有用?不一定快,但有用。
例如,合并"自动更正"是多么容易?你在搜索结果的术语中,拼写中的结果相似但不准确?或者与前3个字符匹配而不是整个单词的结果,或者包含单词但不一定由整个单词组成的结果?有没有这个或类的API,还是有一个算法可以帮助我在这里?答案 0 :(得分:0)
简而言之,对于SIMILAR字符串,您可以使用"编辑距离"算法,找到相似性(实际上它找到了将一个字符串转换为另一个字符串的移动次数,但这是一种相似性),对于AUTOCOMPLETE工具,您可以使用" Trie"数据结构,作为一个字符树,当它读取当前字的字符时,它停在一个节点,告诉你它可以去哪里获取现有的单词。 要搜索包含单词(字符串)的内容,我想您可以使用KMP算法(或Aho-Corasick,如果您希望在整个文本中搜索多个单词)。
https://en.wikipedia.org/wiki/Edit_distance
https://en.wikipedia.org/wiki/Trie
https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm
https://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_algorithm