aboutsummaryrefslogtreecommitdiff
path: root/challenge-256
diff options
context:
space:
mode:
authorntovar <tovar.nelo@gmail.com>2024-02-16 17:59:42 -0500
committerntovar <tovar.nelo@gmail.com>2024-02-16 17:59:42 -0500
commita7539c05dcd3d036e0970f3c485e3801ec3490bd (patch)
treeb0451b834e31417cf67d6b4da3388322b7c7c7bc /challenge-256
parent3f3e0798a68401ce1d67a5e1534f69de16856e82 (diff)
downloadperlweeklychallenge-club-a7539c05dcd3d036e0970f3c485e3801ec3490bd.tar.gz
perlweeklychallenge-club-a7539c05dcd3d036e0970f3c485e3801ec3490bd.tar.bz2
perlweeklychallenge-club-a7539c05dcd3d036e0970f3c485e3801ec3490bd.zip
Challenge 256. Add Perl and Bash solutions. By Nelo Tovar.
Diffstat (limited to 'challenge-256')
-rwxr-xr-xchallenge-256/nelo-tovar/bash/ch-1.sh38
-rwxr-xr-xchallenge-256/nelo-tovar/bash/ch-2.sh40
-rw-r--r--challenge-256/nelo-tovar/perl/ch-1.pl46
-rw-r--r--challenge-256/nelo-tovar/perl/ch-2.pl36
4 files changed, 160 insertions, 0 deletions
diff --git a/challenge-256/nelo-tovar/bash/ch-1.sh b/challenge-256/nelo-tovar/bash/ch-1.sh
new file mode 100755
index 0000000000..5d64f8faf5
--- /dev/null
+++ b/challenge-256/nelo-tovar/bash/ch-1.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+#
+# The Weekly Challenge 256 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-256/
+#
+# Task 1 : Maximum Pairs
+
+function maximum_pairs() {
+ local words=("$@")
+ local length=${#words[@]}
+ local max=0
+
+ for (( i = 0; i < $length; i++ )); do
+ for (( j = $i + 1 ; j < $length; j++ )); do
+ reverse=$(echo ${words[$j]} | rev)
+ if [[ ${words[$i]} == $reverse ]]; then
+ ((max++))
+ break
+ fi
+ done
+ done
+
+ echo $max
+}
+
+example1='ab de ed bc'
+example2='aa ba cd ed'
+example3='uv qp st vu mn pq'
+
+for e in "$example1" "$example2" "$example3"; do
+ array=($e)
+ mp=($(maximum_pairs "${array[@]}"))
+ echo "Input : words = (${array[@]})"
+ echo "Output : $mp"
+ echo ""
+done
+
diff --git a/challenge-256/nelo-tovar/bash/ch-2.sh b/challenge-256/nelo-tovar/bash/ch-2.sh
new file mode 100755
index 0000000000..1826e13196
--- /dev/null
+++ b/challenge-256/nelo-tovar/bash/ch-2.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+#
+# The Weekly Challenge 256 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-256/
+#
+# Task 2 : Merge Strings
+
+function merge_string() {
+ local str1=$1
+ local len_str1=${#str1}
+ local str2=$2
+ local len_str2=${#str2}
+ local merged=''
+
+ for (( i = 0; i < $len_str1; i++ )); do
+ merged+=${str1:$i:1}
+
+ if [ $i -lt $len_str2 ]; then
+ merged+=${str2:$i:1}
+ fi
+ done
+
+ if [ $len_str2 -gt $len_str1 ]; then
+ merged+=${str2:$len_str1}
+ fi
+ echo $merged
+}
+
+example1='abcd 1234'
+example2='abc 12345'
+example3='abcde 123'
+
+for e in "$example1" "$example2" "$example3"; do
+ array=($e)
+ ms=$(merge_string "${array[0]}" "${array[1]}")
+ echo "Input : str1 = ${array[0]} str2 = ${array[1]}"
+ echo -e "Output : $ms\n"
+done
+
diff --git a/challenge-256/nelo-tovar/perl/ch-1.pl b/challenge-256/nelo-tovar/perl/ch-1.pl
new file mode 100644
index 0000000000..ebc3105773
--- /dev/null
+++ b/challenge-256/nelo-tovar/perl/ch-1.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+
+# The Weekly Challenge 256 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-256/
+#
+# Task 1 - Maximum Pairs
+#
+
+use strict;
+use warnings;
+use v5.28;
+use Data::Dump qw(dump);
+
+my @examples = (
+ ["ab", "de", "ed", "bc"],
+ ["aa", "ba", "cd", "ed"],
+ ["uv", "qp", "st", "vu", "mn", "pq"]
+);
+
+sub maximum_pairs {
+ my $words = shift;
+ my $length = scalar @$words;
+ my $max = 0;
+
+ for (my $i = 0; $i < $length - 1; $i++) {
+ for (my $j = $i + 1; $j < $length; $j++) {
+ my $reverse = join('', reverse(split(//, @$words[$j])));
+
+ if (@$words[$i] eq $reverse){
+ $max++;
+ last
+ }
+ }
+ }
+
+ return $max
+}
+
+for my $elements (@examples) {
+ my $mp = maximum_pairs $elements;
+
+ say 'Input : @words = ', dump(@$elements);
+ say 'Output : ', $mp;
+ say ' ';
+}
diff --git a/challenge-256/nelo-tovar/perl/ch-2.pl b/challenge-256/nelo-tovar/perl/ch-2.pl
new file mode 100644
index 0000000000..70b5263653
--- /dev/null
+++ b/challenge-256/nelo-tovar/perl/ch-2.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/env perl
+
+# The Weekly Challenge 256 - By Nelo Tovar
+#
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-256/
+#
+# Task 2 - Merge Strings
+#
+
+use strict;
+use warnings;
+use v5.28;
+use List::MoreUtils qw (mesh);
+
+my @examples = (
+ [ 'abcd', '1234' ],
+ [ 'abc', '12345' ],
+ [ 'abcde', '123' ],
+);
+
+sub merge_strings {
+ my @str1 = split(//, shift);
+ my @str2 = split(//, shift);
+ my @merged = grep { defined $_ } mesh(@str1, @str2);
+
+ return join('', @merged);
+}
+
+for my $elements (@examples) {
+ my $ms = merge_strings @$elements[0], @$elements[1];
+
+ # say 'Input : @nums = ', dump(@$elements);
+ printf "Input: str1 = %s str2 = %s\n", @$elements[0], @$elements[1];
+ say 'Output : ', $ms;
+ say ' ';
+}