This commit is contained in:
Yanick Champoux 2018-12-05 11:07:19 -05:00
parent 4f65bd004d
commit 5d5e3f49f7
3 changed files with 64 additions and 0 deletions

1
2018/05/input.txt Normal file

File diff suppressed because one or more lines are too long

30
2018/05/sol1.pl Normal file
View File

@ -0,0 +1,30 @@
use 5.20.0;
use warnings;
use List::AllUtils qw/ uniq /;
use experimental qw/
signatures
postderef
/;
my $code = <>;
chomp $code;
use DDP;
say length react($code);
sub react ($code) {
my @combos = map { create_dual($_) } uniq split '', $code;
my $re = join '|', @combos;
1 while $code =~ s/$re//g;
return $code;
}
sub create_dual($x) {
$x . ( $x eq uc $x ? lc $x : uc $x );
}

33
2018/05/sol2.pl Normal file
View File

@ -0,0 +1,33 @@
use 5.20.0;
use warnings;
use List::AllUtils qw/ uniq min /;
use experimental qw/
signatures
postderef
/;
my $code = <>;
chomp $code;
use DDP;
say min
map { length react($_) }
map { $code =~ s/$_//irg }
'a'..'z';
sub react ($code) {
my @combos = map { create_dual($_) } uniq split '', $code;
my $re = join '|', @combos;
1 while $code =~ s/$re//g;
return $code;
}
sub create_dual($x) {
$x . ( $x eq uc $x ? lc $x : uc $x );
}