Учитывая строковое значение произвольной длины, вы должны определить частоту слов, которые являются анаграммами друг друга.
public static Map<String, Integer> generateAnagramFrequency(String str)
{ ... }
Например: если строка «найти искусство в крысе для корзины и отслеживания ДНК», ваш результат должен быть картой: найти -> 1 искусство -> 2 в -> 1 а -> 1 тележка -> 2 и -> 2
Ключи должны быть первым вхождением слова, а число — количеством анаграмм этого слова, включая само себя.
Решение, которое я придумал, состоит в том, чтобы отсортировать все слова и сравнить каждый символ из обеих строк до конца любой строки. Это будет O (logn). Я ищу какой-то другой эффективный метод, который не меняет две сравниваемые строки. Спасибо.