Звучит как домашняя работа.Если это так, пожалуйста, пометьте его так.
Является ли «использование индекса» внешним требованием или тем, которое вы изобрели, потому что считаете, что оно является частью решения?
Я бы подумалиспользование структуры данных под названием «Trie» для такого рода требований (при условии, что использование индекса на самом деле не является обязательным - хотя даже в этом случае можно утверждать, что Trie - это индекс ...)