找到有关搜索的最佳建议

问题描述

我一直在考虑这个问题一段时间,但不确定如何以最佳的数据结构和时间复杂性来解决它。这不是家庭作业,也不是类似的事情,只是临时的问题解决,我今年早些时候尝试解决,但是后来我忘了它。

想象一下,您有一个网站,它将对您输入的关键字进行最佳搜索。您有一个由具有2个属性的对象组成的数据结构

"word": < string value,name of the word >
"popularity": < numerical value,how often the word has been searched >

您可以选择所需的任何数据结构,并且可以先按最高值或根据“单词”值的字母顺序对其进行排序。

例如,考虑下面的数据值

data = [{
    "word": "ipad"
    "popularity": 100
  },{
    "word": "iphone"
    "popularity": 1321
  },{
    "word": "ipod"
    "popularity": 22
  }
]

如果我搜索“ ipa”,我应该得到“ ipad”

如果我搜索“ ip”,我应该得到“ iphone”

如果我搜索“ ipod”,我应该得到“ ipod”

算法需要检查键入的关键字是否完全匹配,如果找到则返回单词;如果不完全匹配,则将选择具有最高人气值的单词,然后将其返回。

我想解决此问题的方法是使用对象数组来找到最佳匹配,但这是O(n)不够好。

我很想知道其他想法,建议阅读文章

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)