aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-349/kjetillll/perl/ch-1.pl7
-rw-r--r--challenge-349/kjetillll/perl/ch-2.pl12
2 files changed, 19 insertions, 0 deletions
diff --git a/challenge-349/kjetillll/perl/ch-1.pl b/challenge-349/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..99dc8746ae
--- /dev/null
+++ b/challenge-349/kjetillll/perl/ch-1.pl
@@ -0,0 +1,7 @@
+sub f { ( sort {$b<=>$a} map length, pop =~ /((.)\2*)/g )[0] }
+
+print f("textbook") == 2 ? "ok\n" : "error\n";
+print f("aaaaa") == 5 ? "ok\n" : "error\n";
+print f("hoorayyy") == 3 ? "ok\n" : "error\n";
+print f("x") == 1 ? "ok\n" : "error\n";
+print f("aabcccddeeffffghijjk") == 4 ? "ok\n" : "error\n";
diff --git a/challenge-349/kjetillll/perl/ch-2.pl b/challenge-349/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..37eedbb12c
--- /dev/null
+++ b/challenge-349/kjetillll/perl/ch-2.pl
@@ -0,0 +1,12 @@
+sub f {
+ my( $s, %c ) = @_;
+ $s !~ s{ ^. }{ ++$c{$&}; '' }ex ? 0
+ :$c{U} == $c{D} && $c{L} == $c{R} ? 1
+ :f($s, %c)
+}
+
+print!f("ULD") ? "ok\n" : "error\n";
+print f("ULDR") ? "ok\n" : "error\n";
+print!f("UUURRRDDD") ? "ok\n" : "error\n";
+print f("UURRRDDLLL") ? "ok\n" : "error\n";
+print f("RRUULLDDRRUU") ? "ok\n" : "error\n";