aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-340/kjetillll/perl/ch-1.pl7
-rw-r--r--challenge-340/kjetillll/perl/ch-2.pl11
2 files changed, 18 insertions, 0 deletions
diff --git a/challenge-340/kjetillll/perl/ch-1.pl b/challenge-340/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..c14bba0484
--- /dev/null
+++ b/challenge-340/kjetillll/perl/ch-1.pl
@@ -0,0 +1,7 @@
+sub f { $_[0] =~ /(.)\1/ ? f( $` . $' ) : pop }
+
+print f('abbaca') eq 'ca' ? "ok\n" : "error\n";
+print f('azxxzy') eq 'ay' ? "ok\n" : "error\n";
+print f('aaaaaaaa') eq '' ? "ok\n" : "error\n";
+print f('aabccba') eq 'a' ? "ok\n" : "error\n";
+print f('abcddcba') eq '' ? "ok\n" : "error\n";
diff --git a/challenge-340/kjetillll/perl/ch-2.pl b/challenge-340/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..9512da15b1
--- /dev/null
+++ b/challenge-340/kjetillll/perl/ch-2.pl
@@ -0,0 +1,11 @@
+use List::Util 'uniq';
+
+sub f { my @nums = pop =~ /\d+/g; "@{[ uniq sort { $a <=> $b } @nums ]}" eq "@nums" }
+
+print f("The cat has 3 kittens 7 toys 10 beds") == 1 ? "ok\n" : "error\n";
+print f('Alice bought 5 apples 2 oranges 9 bananas') == 0 ? "ok\n" : "error\n";
+print f('I ran 1 mile 2 days 3 weeks 4 months') == 1 ? "ok\n" : "error\n";
+print f('Bob has 10 cars 10 bikes') == 0 ? "ok\n" : "error\n";
+print f('Zero is 0 one is 1 two is 2') == 1 ? "ok\n" : "error\n";
+
+