Курс по 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
Цялото преброяване е едно извикване на метод и няма изричен хеш за управляване.