Алгоритм анаграмм с минимальной сложностью

Недавно меня попросили разработать алгоритм, который проверяет, являются ли две строки анаграммами друг друга. Моей целью было минимизировать пространственную и временную сложность, поэтому я придумал следующий алгоритм:

  1. Создайте массив из 26 элементов, каждый из которых инициализирован нулем.
  2. Пройдите по первой строке и для каждого символа увеличьте соответствующий элемент массива. к этому символу.
  3. Обходите вторую строку и для каждого символа уменьшите элемент массива, соответствующий этому символу.
  4. Просмотрите массив. Если все элементы равны 0, две строки являются анаграммами.

Однако временная сложность этого алгоритма составляет O (n), и я не могу придумать алгоритм с меньшей сложностью. Кто-нибудь знает об одном?

7
задан templatetypedef 20 August 2011 в 20:44
поделиться