diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2024-06-11 18:35:31 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2024-06-11 18:35:31 +0800 |
| commit | 2a6cdeb8e1b429bdb337b3e261f83bdd0a5b80d9 (patch) | |
| tree | b0118315632148f728c31d8c216914df88ba2ffc | |
| parent | 514530d6be7cc5067a95a11ebedff9e0d4d46cfe (diff) | |
| download | perlweeklychallenge-club-2a6cdeb8e1b429bdb337b3e261f83bdd0a5b80d9.tar.gz perlweeklychallenge-club-2a6cdeb8e1b429bdb337b3e261f83bdd0a5b80d9.tar.bz2 perlweeklychallenge-club-2a6cdeb8e1b429bdb337b3e261f83bdd0a5b80d9.zip | |
challenge 273, raku solutions
| -rwxr-xr-x | challenge-273/feng-chang/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-273/feng-chang/raku/ch-2.raku | 7 | ||||
| -rwxr-xr-x | challenge-273/feng-chang/raku/test.raku | 28 |
3 files changed, 40 insertions, 0 deletions
diff --git a/challenge-273/feng-chang/raku/ch-1.raku b/challenge-273/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..02a354a425 --- /dev/null +++ b/challenge-273/feng-chang/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $s, Str:D $c where $c.chars == 1); + +put ($s.comb.Bag{$c} / $s.chars * 100 + 0.5).Int; diff --git a/challenge-273/feng-chang/raku/ch-2.raku b/challenge-273/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..e1497801a6 --- /dev/null +++ b/challenge-273/feng-chang/raku/ch-2.raku @@ -0,0 +1,7 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $s); + +with $s.index('b') // -1 { + put ($_ ≥ 0) && ($_ > ($s.rindex('a') // -1)); +} diff --git a/challenge-273/feng-chang/raku/test.raku b/challenge-273/feng-chang/raku/test.raku new file mode 100755 index 0000000000..110f6e8c09 --- /dev/null +++ b/challenge-273/feng-chang/raku/test.raku @@ -0,0 +1,28 @@ +#!/bin/env raku + +# The Weekly Challenge 273 +use Test; + +sub pwc-test(Str:D $script, Bool :$deeply? = False, *@input) { + my ($expect, $assertion) = @input.splice(*-2, 2); + my $p = run $script, |@input, :out; + if $deeply { + is-deeply $p.out.slurp(:close).chomp.words.Bag, $expect, $assertion; + } else { + is $p.out.slurp(:close).chomp, $expect, $assertion; + } +} + +# Task 1, Percentage of Character +pwc-test './ch-1.raku', <perl e>, 25, 'Percentage of Character: $str = "perl", $char = "e" => 25'; +pwc-test './ch-1.raku', <java a>, 50, 'Percentage of Character: $str = "java", $char = "a" => 50'; +pwc-test './ch-1.raku', <python m>, 0, 'Percentage of Character: $str = "phthon", $char = "m" => 0'; +pwc-test './ch-1.raku', <ada a>, 67, 'Percentage of Character: $str = "ada", $char = "a" => 67'; +pwc-test './ch-1.raku', <ballerina l>, 22, 'Percentage of Character: $str = "ballerina", $char = "l" => 22'; +pwc-test './ch-1.raku', <analitik k>, 13, 'Percentage of Character: $str = "analitik", $char = "k" => 13'; + +# Task 2, B After A +pwc-test './ch-2.raku', 'aabb', 'True', 'B After A: aabb => true'; +pwc-test './ch-2.raku', 'abab', 'False', 'B After A: abab => false'; +pwc-test './ch-2.raku', 'aaa', 'False', 'B After A: aaa => false'; +pwc-test './ch-2.raku', 'bbb', 'True', 'B After A: bbb => true'; |
