背景:我正在研究用户代理字符串(Yuaaa)的分析器,作为此分析的一部分,我想对应该报告的设备品牌进行有根据的猜测。我有一个实现需要重写以提高效率。
因为我不想拥有所有设备的完整列表,所以我想根据模型的前缀进行检测。
所以我有一个带有前缀和相关品牌的数据集:
- "GT-" --> "三星"
- "LLD-" --> "华为"
然后我想做一个 .get("GT-1234124") 应该导致“三星”,因为那是“最长的匹配前缀”。
我查看了 Trie 结构,但这似乎是针对相反的情况。我的理解是,您从一组值开始,您可以有效地获取以提供的前缀开头的所有值。
如果我要从头开始实现它,我会使用类似于 Trie 的树,但会以不同的方式绕过它。我正在寻找的是一种尽可能快地完成我需要的数据结构。
您为此用例推荐什么数据结构?
我可以使用现有的(经过验证的)实现吗?