diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-08-23 09:19:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-23 09:19:20 +0100 |
| commit | eba563a887aeef17bb87e33a576b92779b31916f (patch) | |
| tree | 0072ba4d564653501d781d671c53fbb622d34e87 /challenge-074 | |
| parent | 4601f226c6f941e12d967db9e3940d88f9cd8c0e (diff) | |
| parent | 28495875d70cf8cab1bd9b34d7880ea308e480ec (diff) | |
| download | perlweeklychallenge-club-eba563a887aeef17bb87e33a576b92779b31916f.tar.gz perlweeklychallenge-club-eba563a887aeef17bb87e33a576b92779b31916f.tar.bz2 perlweeklychallenge-club-eba563a887aeef17bb87e33a576b92779b31916f.zip | |
Merge pull request #2121 from wambash/challange-week-074
solution week 074
Diffstat (limited to 'challenge-074')
| -rw-r--r-- | challenge-074/wambash/raku/ch-1.raku | 14 | ||||
| -rw-r--r-- | challenge-074/wambash/raku/ch-2.raku | 17 |
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-074/wambash/raku/ch-1.raku b/challenge-074/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..4b4a1ec2a2 --- /dev/null +++ b/challenge-074/wambash/raku/ch-1.raku @@ -0,0 +1,14 @@ +use v6; + +sub majority-element (+@a) { + @a.Bag + andthen \(total => .total, max-element => .max: *.value) + andthen .<total> - .<max-element>.value < .<max-element>.value ?? .<max-element>.key !! -1 +} + +sub MAIN (:$test) { + use Test; + is majority-element(1, 2, 2, 3, 2, 4, 2), 2; + is majority-element(1, 3, 1, 2, 4, 5), -1; + done-testing(); +} diff --git a/challenge-074/wambash/raku/ch-2.raku b/challenge-074/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..55fc320f00 --- /dev/null +++ b/challenge-074/wambash/raku/ch-2.raku @@ -0,0 +1,17 @@ +use v6; + +sub infix:<FNR> (+@a) is assoc<list> { + @a.first: * ∉ @a.repeated, :end orelse '#' +} + +sub FNR-charakter ( $s ) { + [~] [\FNR] $s.comb +} + +sub MAIN ( :$test ) { + use Test; + is 'a' FNR 'b' FNR 'c' FNR 'a', 'c'; + is FNR-charakter('ababc'), ‘abb#c’; + is FNR-charakter('xyzzyx'), ‘xyzyx#’; + done-testing(); +} |
