aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-282/adam-russell/blog.txt1
-rw-r--r--challenge-282/adam-russell/perl/ch-1.pl19
-rw-r--r--challenge-282/adam-russell/perl/ch-2.pl26
3 files changed, 46 insertions, 0 deletions
diff --git a/challenge-282/adam-russell/blog.txt b/challenge-282/adam-russell/blog.txt
new file mode 100644
index 0000000000..e843b19721
--- /dev/null
+++ b/challenge-282/adam-russell/blog.txt
@@ -0,0 +1 @@
+http://www.rabbitfarm.com/cgi-bin/blosxom/perl/2024/08/12
diff --git a/challenge-282/adam-russell/perl/ch-1.pl b/challenge-282/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..775fcddef8
--- /dev/null
+++ b/challenge-282/adam-russell/perl/ch-1.pl
@@ -0,0 +1,19 @@
+
+
+use v5.38;
+
+
+sub good_integer{
+ my($x) = @_;
+ return qq/$1$2/ if $x =~ m/([0-9])(\1{2,})/ &&
+ length qq/$1$2/ == 3;
+ return -1;
+}
+
+
+MAIN:{
+ say good_integer q/12344456/;
+ say good_integer q/1233334/;
+ say good_integer q/10020003/;
+}
+
diff --git a/challenge-282/adam-russell/perl/ch-2.pl b/challenge-282/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..6144817830
--- /dev/null
+++ b/challenge-282/adam-russell/perl/ch-2.pl
@@ -0,0 +1,26 @@
+
+
+use v5.38;
+
+
+sub count_key_changes{
+ my($s) = @_;
+ my $count = 0;
+ my @s = split //, lc $s;
+ {
+ my $x = shift @s;
+ my $y = shift @s;
+ $count++ if $x && $y && $x ne $y;
+ unshift @s, $y if $y;
+ redo if @s;
+ }
+ return $count;
+}
+
+
+MAIN:{
+ say count_key_changes(q/pPeERrLl/);
+ say count_key_changes(q/rRr/);
+ say count_key_changes(q/GoO/);
+}
+