aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoud Aldenhoven <noud.aldenhoven@gmail.com>2020-01-10 21:02:16 +0100
committerNoud Aldenhoven <noud.aldenhoven@gmail.com>2020-01-10 21:02:16 +0100
commita8e7f1878d5f01fd933d0ea4a83b1226a56c747a (patch)
treed8d773e96bc924737e37429949f4bf796f4f894e
parentf8eddf72529bf1a90f4eaa38c884e4a119e2ae3e (diff)
downloadperlweeklychallenge-club-a8e7f1878d5f01fd933d0ea4a83b1226a56c747a.tar.gz
perlweeklychallenge-club-a8e7f1878d5f01fd933d0ea4a83b1226a56c747a.tar.bz2
perlweeklychallenge-club-a8e7f1878d5f01fd933d0ea4a83b1226a56c747a.zip
Some small improvements in the balance subroutine
-rw-r--r--challenge-042/noud/perl6/ch-2.p612
1 files changed, 7 insertions, 5 deletions
diff --git a/challenge-042/noud/perl6/ch-2.p6 b/challenge-042/noud/perl6/ch-2.p6
index 9ca88a51af..59415fbd69 100644
--- a/challenge-042/noud/perl6/ch-2.p6
+++ b/challenge-042/noud/perl6/ch-2.p6
@@ -24,10 +24,7 @@ sub balanced($brackets) {
for $brackets.comb() -> $b {
if ($b === '(') {
$c++;
- } else {
- $c--;
- }
- if ($c < 0) {
+ } elsif (--$c < 0) {
return False;
}
}
@@ -35,9 +32,14 @@ sub balanced($brackets) {
return $c == 0;
}
+say "() - " ~ balanced("()");
+say "(()) - " ~ balanced("(())");
+say ")( - " ~ balanced(")(");
+say "())() - " ~ balanced("())()");
+
my $brackets = '';
-for 1..10 -> $i {
+for 1..20 -> $i {
# Only generate bracket strings of length 4, because with higher lengths
# the randomly generated strings rarely are balanced.
$brackets = rand_brackets(4);