Использование словаря или набора хэшей приведет к o (n) в среднем .
Чтобы решить это за o (n) наихудший случай , a trie с небольшим изменением: добавьте счетчик для каждого представления слова в trie;Каждый раз, когда вставленное слово уже существует, увеличивайте его счетчик.
Если вы хотите напечатать все суммы в конце, вы можете сохранить счетчики в другом списке и ссылаться на него из дерева, вместо этого сохраняясчетчик в три.