Контекст: я работаю над анализатором для строк useragent ( Yauaa ), и в рамках этого анализа я хочу сделать обоснованное предположение, о какой марке устройства следует сообщать. У меня есть реализация, которую нужно переписать, чтобы она была намного эффективнее.
Поскольку я не хочу иметь полный список всех устройств, я хочу выполнить обнаружение на основе префикса модели.
Итак, у меня есть набор данных с префиксами и брендом, с которым он связан:
- "GT-" -> "Samsung"
- "LLD-" -> "Huawei"
И затем я хочу сделать .get ("GT-1234124"), который должен привести к "Samsung", потому что это "самый длинный совпадающий префикс".
Я посмотрел на структуру Три, но, похоже, для противоположной ситуации. Насколько я понимаю, вы начинаете с набора значений и можете эффективно получить все значения, начинающиеся с указанного префикса.
Если бы я реализовал это с нуля, я бы использовал дерево, похожее на три, но обходил его по-другому. То, что я ищу, - это структура данных, которая делает то, что мне нужно, как можно быстрее.
Какую структуру данных вы рекомендуете для этого варианта использования?
Существует ли существующая (проверенная) реализация, которую я могу использовать?