Как получить только один объект перестановка из списка строк

Я хочу сохранить только одну перестановку среди ряда строк и считать происшествие каждой перестановки.

Для создания вещей более ясными я хочу преобразовать (например),

ab
acf
ba
cfa
acf

в

2 ab
3 acf

где 2 и 3 количество перестановок {a, b} и {a, c, f} соответственно.

Как Вы сделали бы это в, избивают самый прямой путь?

4
задан 7 December 2016 в 01:26

1 ответ

Perl к спасению!

perl -lne '$h{ join "", sort split // }++ }{ print "$h{$_} $_" for keys %h' < input_file
  • -n читает вход линию за линией
  • -l удаляет новые строки из входа, добавляют новые строки для вывода
  • split // разделяет строку на символы
  • sort сортирует их (следовательно уникальность)
  • join "" создает назад единственную строку из списка символов
  • %h хеш-таблица, ключи являются строками отсортированных символов, значения являются числами случаев: увеличенный (++) на каждом обнаружении
  • }{ "Эскимосское приветствие" - отделяется, код для погони за входом исчерпывается
7
ответ дан 1 December 2019 в 09:13

Другие вопросы по тегам:

Похожие вопросы: