diff options
| author | James Smith <js5@sanger.ac.uk> | 2022-12-30 12:40:51 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-30 12:40:51 +0000 |
| commit | 45c6d0058689532f7a3742339a676d23a8193e50 (patch) | |
| tree | 45b005a7da55416c73afdceed8780447db8205ce | |
| parent | 4f4f3e92ae4f200f5ca209dd57348a99cf386aa3 (diff) | |
| parent | ef1b6e72f5f8b7b06df4f7f955522b0eb7f554fd (diff) | |
| download | perlweeklychallenge-club-45c6d0058689532f7a3742339a676d23a8193e50.tar.gz perlweeklychallenge-club-45c6d0058689532f7a3742339a676d23a8193e50.tar.bz2 perlweeklychallenge-club-45c6d0058689532f7a3742339a676d23a8193e50.zip | |
Merge branch 'manwar:master' into master
120 files changed, 5753 insertions, 1944 deletions
diff --git a/challenge-196/mohammad-anwar/perl/ch-2.pl b/challenge-196/mohammad-anwar/perl/ch-2.pl new file mode 100644 index 0000000000..3b0b339e73 --- /dev/null +++ b/challenge-196/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +=head1 + +Week 196: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-196 + +Task #2: Range List + + You are given a sorted unique integer array, @array. + + Write a script to find all possible Number Range i.e [x, y] + represent range all integers from x and y (both inclusive). + +=cut + +use v5.36; +use Test2::V0; + +is range_list(1,3,4,5,7), [[3,5]], 'Example 1'; +is range_list(1,2,3,6,7,9), [[1,3],[6,7]], 'Example 2'; +is range_list(0,1,2,4,5,6,8,9), [[0,2],[4,6],[8,9]], 'Example 3'; + +done_testing; + +# +# +# METHOD + +sub range_list(@list) { + my $start = shift @list; + my $curr = $start; + my @range = (); + + foreach my $next (@list) { + next if ($next == $curr); + if ($next == $curr + 1) { + $curr = $next; + } + else { + push @range, [$start, $curr] + if ($curr > $start); + $curr = $start = $next; + } + } + + push @range, [$start, $curr] + if ($curr > $start); + + return \@range; +} diff --git a/challenge-196/wambash/raku/ch-1.raku b/challenge-196/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..cd867a9c2c --- /dev/null +++ b/challenge-196/wambash/raku/ch-1 |
