From d198f9c1f1477ca6a02f67dade78b846fff54d02 Mon Sep 17 00:00:00 2001 From: juliodcs Date: Sat, 17 Oct 2020 01:04:48 +0200 Subject: Fix case when a=b --- challenge-082/juliodcs/perl/ch-2.pl | 3 ++- challenge-082/juliodcs/raku/ch-2.raku | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/challenge-082/juliodcs/perl/ch-2.pl b/challenge-082/juliodcs/perl/ch-2.pl index 5e6398cfdf..e21df5eee7 100644 --- a/challenge-082/juliodcs/perl/ch-2.pl +++ b/challenge-082/juliodcs/perl/ch-2.pl @@ -4,9 +4,10 @@ use experimental 'signatures'; use feature 'say'; sub interleaved($a, $b, $c) { + ($a, $b) = ($b, $a) if length $a < length $b; my ($is_a, $is_b) = (0, 0); $c =~ s/(\Q$a\E)|\Q$b\E/ $1 and ++$is_a or ++$is_b; '' /e for 1 .. 2; - $c eq q() && $is_a && $is_b + $c eq q() && ($is_a && $is_b || $a eq $b) } say interleaved(@ARGV) ? 1 : 0; diff --git a/challenge-082/juliodcs/raku/ch-2.raku b/challenge-082/juliodcs/raku/ch-2.raku index 2821998f72..ad7c3388f9 100644 --- a/challenge-082/juliodcs/raku/ch-2.raku +++ b/challenge-082/juliodcs/raku/ch-2.raku @@ -1,9 +1,10 @@ #!/usr/bin/env raku -sub interleaved($a, $b, $c is rw) { - my ($is_a, $is_b) = 0, 0; - $c ~~ s/($a)|$b/{ $0 and ++$is_a or ++$is_b; 「」 }/ for ^2; - +($c eq 「」 && $is_a && $is_b) +sub interleaved($a is rw, $b is rw, $c is rw) { + ($a, $b) .= reverse if $a.chars < $b.chars; + my ($has-a, $has-b) = False, False; + $c ~~ s/ $a {$has-a = True} | $b {$has-b = True} // for ^2; + +($c eq 「」 && ($has-a && $has-b || $a eq $b)) } say interleaved |@*ARGS; -- cgit