diff options
| author | Ruben Westerberg <drclaw@mac.com> | 2020-01-08 08:05:11 +1000 |
|---|---|---|
| committer | Ruben Westerberg <drclaw@mac.com> | 2020-01-08 08:05:11 +1000 |
| commit | 587d6922f72ebf30daa95f977a899c823b8289fe (patch) | |
| tree | 74a5640d6fd19524fb05875cdc3e37ab736a52c7 /challenge-042 | |
| parent | 896b7ced42b40eb3ee62c38d237d4d07df51f169 (diff) | |
| download | perlweeklychallenge-club-587d6922f72ebf30daa95f977a899c823b8289fe.tar.gz perlweeklychallenge-club-587d6922f72ebf30daa95f977a899c823b8289fe.tar.bz2 perlweeklychallenge-club-587d6922f72ebf30daa95f977a899c823b8289fe.zip | |
added ch-2.pl and ch-2.p6
Diffstat (limited to 'challenge-042')
| -rwxr-xr-x | challenge-042/ruben-westerberg/perl/ch-2.pl | 26 | ||||
| -rwxr-xr-x | challenge-042/ruben-westerberg/raku/ch-2.p6 | 17 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-042/ruben-westerberg/perl/ch-2.pl b/challenge-042/ruben-westerberg/perl/ch-2.pl new file mode 100755 index 0000000000..b72c777c89 --- /dev/null +++ b/challenge-042/ruben-westerberg/perl/ch-2.pl @@ -0,0 +1,26 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use POSIX qw<round>; + +my $maxLength=$ARGV[0]//20; #If no max on command line use 20 +while () { + my $str=""; + #make a random length string of up to $maxLength long + $str.=chr round rand()+40 for 0..int rand $maxLength; + + my $v=0; + for (split "",$str) { + $v+=(ord($_)-40)*-2+1; + last unless $v >=0; + } + + if($v==0) { + print("balanced: $str\n"); + sleep 1; + next; + } + print("unbalanced: $str\n"); +} + + diff --git a/challenge-042/ruben-westerberg/raku/ch-2.p6 b/challenge-042/ruben-westerberg/raku/ch-2.p6 new file mode 100755 index 0000000000..99d2ee83ba --- /dev/null +++ b/challenge-042/ruben-westerberg/raku/ch-2.p6 @@ -0,0 +1,17 @@ +#!/usr/bin/env perl6 +my $maxLength=@*ARGS[0]//20; #If no max on command line use 20 +while 1 { + my $str=""; + #make a random length string of upto $maxLength long + $str~=(1.rand()+40).round.chr for 0..$maxLength.rand.Int; + my @v= [\+] $str.comb.map({(ord($_)-40)*-2+1}); + + if @v[*-1]==0 and !@v.grep(* < 0) { + put "balanced $str"; + sleep 1; + next; + } + say "unbalanced: $str"; +} + + |
