Курс языка программирования 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

Комментарии

  1. После подсчёта каждого значения в %count сортировка пар по -*.value ставит самое частое первым, а [0].key возвращает сам элемент.

  2. Raku может подсчитать всё за вас с помощью Bag, который считает, сколько раз встречается каждое значение. Затем .max(*.value) выбирает пару с наибольшим количеством, а .key — сам элемент:

    my @values = <a b a c a b>;
    
    say @values.Bag.max(*.value).key; # a

    Весь подсчёт — это один вызов метода, и никаким хешем управлять не приходится.

Навигация по курсу

Самый частый элемент   |   Соедините два списка в хеш