RosettaCodeData/Task/Balanced-brackets/Perl/balanced-brackets-1.pl

16 lines
290 B
Perl
Raw Permalink Normal View History

2014-04-02 16:56:35 +00:00
sub generate {
my $n = shift;
my $str = '[' x $n;
substr($str, rand($n + $_), 0) = ']' for 1..$n;
return $str;
}
2013-04-10 12:38:42 -07:00
sub balanced {
2014-04-02 16:56:35 +00:00
shift =~ /^ (\[ (?1)* \])* $/x;
2013-04-10 12:38:42 -07:00
}
2014-04-02 16:56:35 +00:00
for (0..8) {
my $input = generate($_);
print balanced($input) ? " ok:" : "bad:", " '$input'\n";
2013-04-10 12:38:42 -07:00
}