aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKian-Meng, Ang <kianmeng@cpan.org>2019-05-05 21:04:15 +0800
committerKian-Meng, Ang <kianmeng@cpan.org>2019-05-05 21:04:15 +0800
commitcd4b8f149a5a34e8702b9c156659702fe654fa4d (patch)
tree4febb0b9cf09c79673b701943609ad84b3c6bc7a
parentbe35481acbb84e90b0bd65880334806b28c702c3 (diff)
downloadperlweeklychallenge-club-cd4b8f149a5a34e8702b9c156659702fe654fa4d.tar.gz
perlweeklychallenge-club-cd4b8f149a5a34e8702b9c156659702fe654fa4d.tar.bz2
perlweeklychallenge-club-cd4b8f149a5a34e8702b9c156659702fe654fa4d.zip
Challenge #006 answers and challenge #005 blog link
-rw-r--r--challenge-005/kian-meng-ang/blog.txt1
-rw-r--r--challenge-005/kian-meng-ang/perl5/ch-1.pl (renamed from challenge-005/kian-meng-ang/ch-1.pl)0
-rw-r--r--challenge-005/kian-meng-ang/perl5/ch-2.pl (renamed from challenge-005/kian-meng-ang/ch-2.pl)0
-rw-r--r--challenge-006/kian-meng-ang/perl5/ch-1.pl48
4 files changed, 49 insertions, 0 deletions
diff --git a/challenge-005/kian-meng-ang/blog.txt b/challenge-005/kian-meng-ang/blog.txt
new file mode 100644
index 0000000000..c43cc5892a
--- /dev/null
+++ b/challenge-005/kian-meng-ang/blog.txt
@@ -0,0 +1 @@
+https://www.kianmeng.org/2019/05/perl-weekly-challenge-005-2019-week-17.html
diff --git a/challenge-005/kian-meng-ang/ch-1.pl b/challenge-005/kian-meng-ang/perl5/ch-1.pl
index 7bf4e81372..7bf4e81372 100644
--- a/challenge-005/kian-meng-ang/ch-1.pl
+++ b/challenge-005/kian-meng-ang/perl5/ch-1.pl
diff --git a/challenge-005/kian-meng-ang/ch-2.pl b/challenge-005/kian-meng-ang/perl5/ch-2.pl
index 18e659b925..18e659b925 100644
--- a/challenge-005/kian-meng-ang/ch-2.pl
+++ b/challenge-005/kian-meng-ang/perl5/ch-2.pl
diff --git a/challenge-006/kian-meng-ang/perl5/ch-1.pl b/challenge-006/kian-meng-ang/perl5/ch-1.pl
new file mode 100644
index 0000000000..ff49fa43a4
--- /dev/null
+++ b/challenge-006/kian-meng-ang/perl5/ch-1.pl
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+
+use 5.010;
+use strict;
+use warnings;
+use utf8;
+use Carp;
+
+carp 'missing word and dictionary file' if (@ARGV != 1);
+
+my ($series) = @ARGV;
+my @numbers = split /,/, $series;
+
+my (@sequence, @group);
+for my $i (1 .. $#numbers) {
+ if ($numbers[$i] - $numbers[$i-1] == 1) {
+ push @group, $numbers[$i-1] if (scalar @group == 0);
+ push @group, $numbers[$i];
+ }
+ else {
+ push @sequence, [@group];
+ @group = ();
+ }
+
+ if ($i == $#numbers) {
+ push @sequence, [@group];
+ @group = ();
+ }
+}
+
+my @shorter_series;
+foreach my $s (@sequence) {
+ if (scalar @{$s} >= 3) {
+ push @shorter_series, sprintf '%d-%d', shift @{$s}, pop @{$s};
+ }
+ else {
+ push @shorter_series, @{$s};
+ }
+}
+
+say join q|,|, @shorter_series;
+
+1;
+
+__END__
+$ perl ch-1.pl 1,2,3,4,9,10,14,15,16
+1-4,9,10,14-16
+# vi:et:sw=4 ts=4 ft=perl