Я хочу сохранить только одну перестановку среди ряда строк и считать происшествие каждой перестановки.
Для создания вещей более ясными я хочу преобразовать (например),
ab
acf
ba
cfa
acf
в
2 ab
3 acf
где 2 и 3 количество перестановок {a, b} и {a, c, f} соответственно.
Как Вы сделали бы это в, избивают самый прямой путь?
Perl к спасению!
perl -lne '$h{ join "", sort split // }++ }{ print "$h{$_} $_" for keys %h' < input_file
-n
читает вход линию за линией-l
удаляет новые строки из входа, добавляют новые строки для выводаsplit //
разделяет строку на символыsort
сортирует их (следовательно уникальность)join ""
создает назад единственную строку из списка символов%h
хеш-таблица, ключи являются строками отсортированных символов, значения являются числами случаев: увеличенный (++
) на каждом обнаружении}{
"Эскимосское приветствие" - отделяется, код для погони за входом исчерпывается