Курс языка программирования Raku / Приложение 🆕 / Работа с данными / Списки, массивы и хеши / Exercises / Самый частый элемент
Решение: Самый частый элемент
Вот один из возможных вариантов решения задачи.
Код
my @values = <a b a c a b>;
my %count;
%count{$_}++ for @values;
say %count.sort(-*.value)[0].key;🦋 Исходный код можно найти в файле most-common.raku.
Вывод
aКомментарии
После подсчёта каждого значения в
%countсортировка пар по-*.valueставит самое частое первым, а[0].keyвозвращает сам элемент.Raku может подсчитать всё за вас с помощью
Bag, который считает, сколько раз встречается каждое значение. Затем.max(*.value)выбирает пару с наибольшим количеством, а.key— сам элемент:my @values = <a b a c a b>; say @values.Bag.max(*.value).key; # a
Весь подсчёт — это один вызов метода, и никаким хешем управлять не приходится.