上下文:我正在使用一个用于用户代理字符串(Yauaa)的分析器,作为此分析的一部分,我想做出一个有根据的猜测,应报告该设备的品牌。我有一个实现需要重写,以提高效率。
因为我不想拥有要基于模型前缀进行检测的所有设备的完整列表。
所以我有一个带有前缀和相关品牌的数据集:
然后我想做一个.get(“ GT-1234124”),它应该导致“三星”,因为那是“最长匹配前缀”。
我看了看Trie的结构,但这似乎是相反的情况。我了解的是,您从一组值开始,并且可以有效地获取以提供的前缀开头的所有值。
如果我要从头开始实现这一点,我会使用一棵类似于Trie的树,但是绕过它的方式有所不同。我正在寻找的是一种数据结构,它可以尽快完成我所需要的。
对于此用例,您建议使用哪种数据结构?
我可以使用现有的(经过验证的)实现吗?
答案 0 :(得分:0)
我对数据结构进行了一些研究,发现本质上是我需要Trie结构,并采用了不同的方式遍历该结构。
由于此结构非常简单,因此我创建了自己的实现非常好的实现。
更新: