问题描述
我一直在考虑这个问题一段时间,但不确定如何以最佳的数据结构和时间复杂性来解决它。这不是家庭作业,也不是类似的事情,只是临时的问题解决,我今年早些时候尝试解决,但是后来我忘了它。
想象一下,您有一个网站,它将对您输入的关键字进行最佳搜索。您有一个由具有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 (将#修改为@)