diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2020-12-22 14:30:16 -0600 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2020-12-22 14:30:16 -0600 |
| commit | 71e734c81dd51e9fb5b9549c9cfe45d65ff6695e (patch) | |
| tree | 6c360c2b757a4c3e0cf4195735756f92104d70cc /challenge-092 | |
| parent | ce8ada5dcbc277ebc53d091fe7b46931c0f4396c (diff) | |
| download | perlweeklychallenge-club-71e734c81dd51e9fb5b9549c9cfe45d65ff6695e.tar.gz perlweeklychallenge-club-71e734c81dd51e9fb5b9549c9cfe45d65ff6695e.tar.bz2 perlweeklychallenge-club-71e734c81dd51e9fb5b9549c9cfe45d65ff6695e.zip | |
Remove programs from wrong directory
Diffstat (limited to 'challenge-092')
| -rwxr-xr-x | challenge-092/wlmb/ch-1.pl | 27 | ||||
| -rwxr-xr-x | challenge-092/wlmb/ch-2.pl | 46 |
2 files changed, 0 insertions, 73 deletions
diff --git a/challenge-092/wlmb/ch-1.pl b/challenge-092/wlmb/ch-1.pl deleted file mode 100755 index e3bbfb1718..0000000000 --- a/challenge-092/wlmb/ch-1.pl +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env perl -# Perl weekly challenge 092 -# Task 1: Isomorphic strings. -# Test if two or more strings are isomorphic -# See https:/wlmb.github.io/2020/12/14/PWC92/#task-1-isomorphic-strings -use warnings; -use strict; -use v5.10; - -die "Usage ./ch-1.pl s0 s1 ... to compare two or more strings s0 s1 ..." unless @ARGV>=2; - -my $first_string=shift @ARGV; -my $first_canon=canonical_form_of($first_string); -my $first_non_isomorphic; -while(my $string=shift @ARGV){ - $first_non_isomorphic=$string, last - unless $first_canon eq canonical_form_of($string); -} -say $first_non_isomorphic - ? "0: $first_string and $first_non_isomorphic are not isomorphic" - : "1: All strings are mutually isomorphic"; - -sub canonical_form_of { - my %map; - my $current_letter="a"; - my $canon=join '', map {$map{$_}//($map{$_}=$current_letter++)} split //, shift; -} diff --git a/challenge-092/wlmb/ch-2.pl b/challenge-092/wlmb/ch-2.pl deleted file mode 100755 index 41830b8654..0000000000 --- a/challenge-092/wlmb/ch-2.pl +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env perl -# Perl weekly challenge 092 -# Task 2: Insert interval. -# Make a sorted list of non-overlapping intervals by adding or merging new intervals. -# See https:/wlmb.github.io/2020/12/14/PWC92/#task-2-insert-interval -use warnings; -use strict; -use v5.10; -use Scalar::Util qw(looks_like_number); -use List::Util qw(first min max); - -my @intervals; -foreach(split ' ', shift @ARGV){ - usage() unless /^\((.*),(.*)\)$/ - and looks_like_number($1) and looks_like_number($2) - and $1<$2; - add_interval([$1,$2]); -} -# print the results -print_interval($_) foreach(@intervals); -say ''; - -# add interval to ordered @intervals array merging overlapping intervals -sub add_interval { - my $interval=shift; - my $first=first {$interval->[0]<$intervals[$_][1]} (0..$#intervals); - my $last=first {$interval->[1]>$intervals[$_][0]} reverse(0..$#intervals); - push(@intervals, $interval), return unless defined $first; - unshift(@intervals, $interval), return unless defined $last; - splice(@intervals, $first, 0, $interval), return if $last<$first; - splice @intervals, $first, $last+1-$first, - [min($intervals[$first][0], $interval->[0]), - max($intervals[$last][1], $interval->[1])]; -} - -sub print_interval { - my $interval=shift @_; - print "($interval->[0],$interval->[1]) "; -} -sub usage { - say <<'END_USAGE'; -Usage: ./ch-2.pl "(l0,u0) (l1,u1),..." -where ln<un are numbers and there is no space within the parenthesis. -END_USAGE - exit 1; -} |
