Массив строк содержит только анаграммы?

Мне дали упражнение по анаграммам, и оно выглядело настолько простым, что я сомневаюсь, что что-то упустил. Реализованное мной решение - это то, что я представлю в ближайшее время, и я хотел спросить вас, можете ли вы подумать о какой-либо оптимизации, изменении подхода или проблеме с моим решением. Я реализовал алгоритм на Java.

Теперь упражнение. В качестве ввода у меня есть текст, а в качестве вывода я должен вернуть, является ли каждая строка этого текста анаграммой каждой другой строки. То есть для ввода:

Кабинет Huffiest Minnows Loll
Cab Deed Huffiest Minnow Lolls
Cab Deed Shuffles Million Wont
Cab Deed Shuffles Million Город

Программа должна вернуть True. Для ввода:

A Cab Deed Huffiest Minnows Loll
A Cab Deed Huffiest Minnow Lolls привет
Такси перетасовывает миллион обычаев
Кабинет перетасовывает миллион городов

вывод должен быть ложным (из-за второй строки, конечно).

Теперь то, что я считал довольно простым:

  • Я создаю 2 HashMap: ref и cur.
  • Я разбираю первую строку текста, заполняя исх. Я буду считать только буквы алфавита.
  • для каждой другой строки, я разбираю строку на cur и проверяю, есть ли cur.equals (ref): если да, верните false
  • , если я дойду до конца текста, это означает, что каждая строка является анаграммой одна другая строка, поэтому я возвращаю истину.

И ... вот оно что. Я пробовал это с вводимым текстом из 88000 строк, и он работает довольно быстро.

Есть комментарии? Предложения? Оптимизация?

Большое спасибо за помощь.

5
задан mdm 3 October 2011 в 23:47
поделиться