Raku kurss / Pielikums 🆕 / Darbs ar datiem / Saraksti, masīvi un jaucējtabulas / Exercises / Biežākais elements

Risinājums: Biežākais elements

Šeit ir iespējams risinājums uzdevumam.

Kods

my @values = <a b a c a b>;

my %count;
%count{$_}++ for @values;

say %count.sort(-*.value)[0].key;

🦋 Atrodiet programmu failā most-common.raku.

Izvade

a

Komentāri

  1. Pēc katras vērtības saskaitīšanas %count, kārtošana pēc -*.value liek biežāko pa priekšu; [0].key tad atdod šo elementu.

  2. Raku skaitīšanu var izdarīt jūsu vietā ar Bag, kas saskaita, cik reižu katra vērtība parādās. Tad .max(*.value) izvēlas pāri ar lielāko skaitu, un .key ir pats elements:

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

    Visa saskaitīšana ir viens metodes izsaukums, un nav nekādas jaucējtabulas, kas būtu jāpārvalda.

Kursa navigācija

Biežākais elements   |   Savienojiet divus sarakstus jaucējtabulā