diff options
| author | Simon Proctor <simon.proctor@zpg.co.uk> | 2020-01-06 09:22:40 +0000 |
|---|---|---|
| committer | Simon Proctor <simon.proctor@zpg.co.uk> | 2020-01-06 09:22:40 +0000 |
| commit | 36497875a95963c8629209706f525a6982f8ffa1 (patch) | |
| tree | 50a7b33e635a28b5f8ca7d90e08668d99f92f801 | |
| parent | fdaa0d28c8acc189ff817edb624258e961355904 (diff) | |
| download | perlweeklychallenge-club-36497875a95963c8629209706f525a6982f8ffa1.tar.gz perlweeklychallenge-club-36497875a95963c8629209706f525a6982f8ffa1.tar.bz2 perlweeklychallenge-club-36497875a95963c8629209706f525a6982f8ffa1.zip | |
Balancing brackets. Couldn't be bothered to use a regex
| -rw-r--r-- | challenge-042/simon-proctor/raku/ch-2.p6 | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/challenge-042/simon-proctor/raku/ch-2.p6 b/challenge-042/simon-proctor/raku/ch-2.p6 new file mode 100644 index 0000000000..50178cdb05 --- /dev/null +++ b/challenge-042/simon-proctor/raku/ch-2.p6 @@ -0,0 +1,27 @@ +#!/usr/bin/env perl6 + +use v6; + +#| Generate a random string of brackets then test if they are balanced +sub MAIN() { + my $brackets = ("(",")").roll( (1..25).pick() * 2 ).join(""); + say "String to test {$brackets}"; + say "Balanced? {balanced($brackets)}"; +} + +sub balanced( Str \brackets ) { + my @list = brackets.comb(""); + my $count = 0; + for @list -> \bracket { + given bracket { + when "(" { + $count++; + } + when ")" { + $count--; + } + } + return False if $count < 0; + } + return $count == 0; +} |
