Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
15
Task/Balanced-brackets/Perl/balanced-brackets-1.pl
Normal file
15
Task/Balanced-brackets/Perl/balanced-brackets-1.pl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
sub generate {
|
||||
my $n = shift;
|
||||
my $str = '[' x $n;
|
||||
substr($str, rand($n + $_), 0) = ']' for 1..$n;
|
||||
return $str;
|
||||
}
|
||||
|
||||
sub balanced {
|
||||
shift =~ /^ (\[ (?1)* \])* $/x;
|
||||
}
|
||||
|
||||
for (0..8) {
|
||||
my $input = generate($_);
|
||||
print balanced($input) ? " ok:" : "bad:", " '$input'\n";
|
||||
}
|
||||
3
Task/Balanced-brackets/Perl/balanced-brackets-2.pl
Normal file
3
Task/Balanced-brackets/Perl/balanced-brackets-2.pl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
sub balanced {
|
||||
shift =~ /^ ( [^\[\]]++ | \[ (?1)* \] )* $/x;
|
||||
}
|
||||
5
Task/Balanced-brackets/Perl/balanced-brackets-3.pl
Normal file
5
Task/Balanced-brackets/Perl/balanced-brackets-3.pl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
use Regexp::Common 'balanced';
|
||||
my $re = qr/^$RE{balanced}{-parens=>'[]'}$/;
|
||||
sub balanced {
|
||||
return shift =~ $re;
|
||||
}
|
||||
8
Task/Balanced-brackets/Perl/balanced-brackets-4.pl
Normal file
8
Task/Balanced-brackets/Perl/balanced-brackets-4.pl
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
sub balanced {
|
||||
my $depth = 0;
|
||||
for (split //, shift) {
|
||||
if ($_ eq '[') { ++$depth }
|
||||
elsif ($_ eq ']') { return if --$depth < 0 }
|
||||
}
|
||||
return !$depth
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue