diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-24 16:08:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-24 16:08:17 +0100 |
| commit | 7142a6996cbb4a9a0e6d49bf70c155ec9330a318 (patch) | |
| tree | 285e37290a7e9651cbeb60bc364e42b9942df05a | |
| parent | fe988cb221822fa23bc445bd25fe87682f2927ca (diff) | |
| parent | 128826a5e5fde3dad004c8a1b7dc64ff98f76214 (diff) | |
| download | perlweeklychallenge-club-7142a6996cbb4a9a0e6d49bf70c155ec9330a318.tar.gz perlweeklychallenge-club-7142a6996cbb4a9a0e6d49bf70c155ec9330a318.tar.bz2 perlweeklychallenge-club-7142a6996cbb4a9a0e6d49bf70c155ec9330a318.zip | |
Merge pull request #12068 from deadmarshal/TWC322
TWC322
| -rw-r--r-- | challenge-322/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-322/deadmarshal/java/Ch1.java | 27 | ||||
| -rw-r--r-- | challenge-322/deadmarshal/java/Ch2.java | 24 | ||||
| -rw-r--r-- | challenge-322/deadmarshal/perl/ch-1.pl | 16 | ||||
| -rw-r--r-- | challenge-322/deadmarshal/perl/ch-2.pl | 17 |
5 files changed, 85 insertions, 0 deletions
diff --git a/challenge-322/deadmarshal/blog.txt b/challenge-322/deadmarshal/blog.txt new file mode 100644 index 0000000000..b09db227ad --- /dev/null +++ b/challenge-322/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2025/05/twc322.html diff --git a/challenge-322/deadmarshal/java/Ch1.java b/challenge-322/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..e0228f1d7d --- /dev/null +++ b/challenge-322/deadmarshal/java/Ch1.java @@ -0,0 +1,27 @@ +import java.util.Stack; + +public class Ch1 { + public static void main(String[] args) { + System.out.println(string_format("ABC-D-E-F", 3)); + System.out.println(string_format("A-BC-D-E", 2)); + System.out.println(string_format("-A-B-CD-E", 4)); + } + + private static String string_format(String s, int i) { + s = s.replace("-", ""); + StringBuilder sb = new StringBuilder(); + int t = 0, rem = s.length() % i; + if (rem == 0) rem = i; + for (int j = 0; j < s.length(); ++j) { + sb.append(s.charAt(j)); + ++t; + if (t == rem) { + t = 0; + rem = i; + if (j != s.length() - 1) sb.append('-'); + } + } + return sb.toString(); + } +} + diff --git a/challenge-322/deadmarshal/java/Ch2.java b/challenge-322/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..427b527a79 --- /dev/null +++ b/challenge-322/deadmarshal/java/Ch2.java @@ -0,0 +1,24 @@ +import java.util.Arrays; + +public class Ch2 { + public static void main(String[] args) { + System.out.println(Arrays.toString(rank_array(new int[]{55, 22, 44, 33}))); + System.out.println(Arrays.toString(rank_array(new int[]{10, 10, 10}))); + System.out.println(Arrays.toString(rank_array(new int[]{5, 1, 1, 4, 3}))); + } + + private static int[] rank_array(int[] arr) { + int n = arr.length; + int[] t = arr.clone(); + Arrays.sort(t); + int m = 0; + for (int i = 0; i < n; ++i) { + if ((i == 0) || (t[i] != t[i - 1])) t[m++] = t[i]; + } + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) + ans[i] = Arrays.binarySearch(t, 0, m, arr[i]) + 1; + return ans; + } +} + diff --git a/challenge-322/deadmarshal/perl/ch-1.pl b/challenge-322/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..777d012325 --- /dev/null +++ b/challenge-322/deadmarshal/perl/ch-1.pl @@ -0,0 +1,16 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub string_format{ + my $str = $_[0] =~ s/-//gr; + my ($rem,@ret) = (length($str) % $_[1]); + $rem and push @ret,substr($str,0,$rem,''); + push @ret,substr($str,0,$_[1],'') while(length($str) > 0); + join '-',@ret +} + +printf "%s\n", string_format('ABC-D-E-F',3); +printf "%s\n", string_format('A-BC-D-E',2); +printf "%s\n", string_format('-A-B-CD-E',4); + diff --git a/challenge-322/deadmarshal/perl/ch-2.pl b/challenge-322/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..1c7b75148f --- /dev/null +++ b/challenge-322/deadmarshal/perl/ch-2.pl @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(uniq); +use Data::Show; + +sub rank_array{ + my @uniq = sort{$a <=> $b} uniq @{$_[0]}; + my %h; + @h{@uniq} = 1..@uniq; + @h{@{$_[0]}} +} + +print show rank_array([55,22,44,33]); +print show rank_array([10,10,10]); +print show rank_array([5,1,1,4,3]); + |
