Два комментария:
1) Ваш вопрос слишком расплывчатый. Существует множество структур данных, таких как суффиксы и префиксы, варианты на красно-черных деревьях и т. Д., Которые поддерживают эффективный поиск. Полезный ответ на ваш вопрос зависит от того, какой именно шаблон / соглашение об именах вы ищете. Разместите пример ввода и ожидаемый результат.
2) Нет смысла внедрять сложную структуру данных, если она вам действительно не нужна. Первый вопрос, который вы должны задать себе: действительно ли вам нужна эффективность: для коллекции, содержащей менее 50 000 элементов, я действительно сомневаюсь, что вы заметите ощутимую разницу в памяти, процессоре или производительности при поиске ваших ключей с причудливой структурой данных, чем просто линейный поиск.