diff options
| -rw-r--r-- | challenge-057/mohammad-anwar/raku/ch-2.p6 | 8 | ||||
| -rw-r--r-- | challenge-057/mohammad-anwar/raku/ch-2a.p6 | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/challenge-057/mohammad-anwar/raku/ch-2.p6 b/challenge-057/mohammad-anwar/raku/ch-2.p6 index 96d5405f76..749a14ca4b 100644 --- a/challenge-057/mohammad-anwar/raku/ch-2.p6 +++ b/challenge-057/mohammad-anwar/raku/ch-2.p6 @@ -9,9 +9,13 @@ sub shortest-unique-prefix($words where .all ~~ Str) { my $l = $word.chars; while $i < $l { my $char = $word.substr(0, $i); - my $count = $words.grep({ m/^$char/ }).elems; + # before : + # my $count = $words.grep({ m/^$char/ }).elems; + # after : suggested by @HrBollermann + my $count = $words.grep( *.starts-with( $char ) ).elems; - $count > 1 && $i++ and next; + $i++; + next if $count > 1; $p.push: $char and last; } } diff --git a/challenge-057/mohammad-anwar/raku/ch-2a.p6 b/challenge-057/mohammad-anwar/raku/ch-2a.p6 index 8d39ce40b7..0e32eda5b4 100644 --- a/challenge-057/mohammad-anwar/raku/ch-2a.p6 +++ b/challenge-057/mohammad-anwar/raku/ch-2a.p6 @@ -21,9 +21,13 @@ sub shortest-unique-prefix($words where .all ~~ Str) { my $l = $word.chars; while $i < $l { my $char = $word.substr(0, $i); - my $count = $words.grep({ m/^$char/ }).elems; + # before : + # my $count = $words.grep({ m/^$char/ }).elems; + # after : suggested by @HrBollermann + my $count = $words.grep( *.starts-with( $char ) ).elems; - $count > 1 && $i++ and next; + $i++; + next if $count > 1; $p.push: $char and last; } } |
