diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-08-19 13:22:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-19 13:22:40 +0100 |
| commit | 55d25c2a77bd59d430ed8ca7844b560f803f0d42 (patch) | |
| tree | b01ee6e33e1ce076989a38b05e2e9a74f865fdbe | |
| parent | 77ecff551b5e341658ad156635933ddf47f5ef8e (diff) | |
| parent | 2d8b7574604fe1f8cb5e03d0b2a6d0bce1d3b76e (diff) | |
| download | perlweeklychallenge-club-55d25c2a77bd59d430ed8ca7844b560f803f0d42.tar.gz perlweeklychallenge-club-55d25c2a77bd59d430ed8ca7844b560f803f0d42.tar.bz2 perlweeklychallenge-club-55d25c2a77bd59d430ed8ca7844b560f803f0d42.zip | |
Merge pull request #10653 from deadmarshal/TWC283
TWC283
| -rw-r--r-- | challenge-283/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/c/ch-1.c | 24 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/c/ch-2.c | 20 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/java/Ch1.java | 18 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/java/Ch2.java | 16 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/modula-3/ch1/src/Ch1.m3 | 27 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/modula-3/ch1/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/modula-3/ch2/src/Ch2.m3 | 24 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/modula-3/ch2/src/m3makefile | 6 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/perl/ch-1.pl | 15 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/perl/ch-2.pl | 13 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/raku/ch-1.raku | 12 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/raku/ch-2.raku | 10 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/ruby/ch1.rb | 11 | ||||
| -rw-r--r-- | challenge-283/deadmarshal/ruby/ch2.rb | 12 |
15 files changed, 214 insertions, 0 deletions
diff --git a/challenge-283/deadmarshal/blog.txt b/challenge-283/deadmarshal/blog.txt new file mode 100644 index 0000000000..35ee794cc2 --- /dev/null +++ b/challenge-283/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2024/08/twc283.html diff --git a/challenge-283/deadmarshal/c/ch-1.c b/challenge-283/deadmarshal/c/ch-1.c new file mode 100644 index 0000000000..a09166434c --- /dev/null +++ b/challenge-283/deadmarshal/c/ch-1.c @@ -0,0 +1,24 @@ +#include<stdio.h> + +int unique_number(int *arr, size_t sz) +{ + int hash[10] = {0}; + for(size_t i = 0; i < sz; ++i) hash[arr[i] % 10]++; + for(size_t i = 0; i < 10; ++i) if(hash[i] == 1) return i; + return -1; +} + +int main(void) +{ + int arr1[] = {3,3,1}; + int arr2[] = {3,2,4,2,4}; + int arr3[] = {1}; + int arr4[] = {4,3,1,1,1,4}; + size_t sz1 = 3,sz2 = 5,sz3 = 1,sz4 = 6; + printf("%d\n",unique_number(arr1,sz1)); + printf("%d\n",unique_number(arr2,sz2)); + printf("%d\n",unique_number(arr3,sz3)); + printf("%d\n",unique_number(arr4,sz4)); + return 0; +} + diff --git a/challenge-283/deadmarshal/c/ch-2.c b/challenge-283/deadmarshal/c/ch-2.c new file mode 100644 index 0000000000..dcfcc2896c --- /dev/null +++ b/challenge-283/deadmarshal/c/ch-2.c @@ -0,0 +1,20 @@ +#include<stdio.h> + +int digit_count_value(int *arr,size_t sz) +{ + int hash[10] = {0}; + for(size_t i = 0; i < sz; ++i) hash[arr[i] % 10]++; + for(size_t i = 0; i < sz; ++i) if(hash[i] != arr[i]) return 0; + return 1; +} + +int main(void) +{ + int arr1[] = {1,2,1,0}; + int arr2[] = {0,3,0}; + size_t sz1 = 4,sz2 = 3; + printf("%d\n",digit_count_value(arr1,sz1)); + printf("%d\n",digit_count_value(arr2,sz2)); + return 0; +} + diff --git a/challenge-283/deadmarshal/java/Ch1.java b/challenge-283/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..766e711f7f --- /dev/null +++ b/challenge-283/deadmarshal/java/Ch1.java @@ -0,0 +1,18 @@ +import java.util.Arrays; + +public class Ch1 { + public static void main(String[] args) { + System.out.println(unique_number(new int[]{3, 3, 1})); + System.out.println(unique_number(new int[]{3, 2, 4, 2, 4})); + System.out.println(unique_number(new int[]{1})); + System.out.println(unique_number(new int[]{4, 3, 1, 1, 1, 4})); + } + + private static int unique_number(int[] arr) { + int[] hash = new int[10]; + Arrays.fill(hash, 0); + for (int i = 0; i < arr.length; ++i) hash[arr[i] % 10]++; + for (int i = 0; i < hash.length; ++i) if (hash[i] == 1) return i; + return -1; + } +} diff --git a/challenge-283/deadmarshal/java/Ch2.java b/challenge-283/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..4abf63d278 --- /dev/null +++ b/challenge-283/deadmarshal/java/Ch2.java @@ -0,0 +1,16 @@ +import java.util.Arrays; + +public class Ch2 { + public static void main(String[] args) { + System.out.println(digit_count_value(new int[]{1, 2, 1, 0})); + System.out.println(digit_count_value(new int[]{0, 3, 0})); + } + + private static boolean digit_count_value(int[] arr) { + int[] hash = new int[10]; + Arrays.fill(hash, 0); + for (int i = 0; i < arr.length; ++i) hash[arr[i] % 10]++; + for (int i = 0; i < arr.length; ++i) if (hash[i] != arr[i]) return false; + return true; + } +} diff --git a/challenge-283/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-283/deadmarshal/modula-3/ch1/src/Ch1.m3 new file mode 100644 index 0000000000..1cd164af39 --- /dev/null +++ b/challenge-283/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -0,0 +1,27 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT SIO; + +VAR + A1 := ARRAY[0..2] OF CARDINAL{3,3,1}; + A2 := ARRAY[0..4] OF CARDINAL{3,2,4,2,4}; + A3 := ARRAY[0..0] OF CARDINAL{1}; + A4 := ARRAY[0..5] OF CARDINAL{4,3,1,1,1,4}; + +PROCEDURE UniqueNumber(VAR A:ARRAY OF CARDINAL):CARDINAL = + VAR + Hash:ARRAY[0..9] OF CARDINAL := ARRAY[0..9] OF CARDINAL{0,..}; + BEGIN + FOR I := FIRST(A) TO LAST(A) DO INC(Hash[A[I] MOD 10]) END; + FOR I := FIRST(Hash) TO LAST(Hash) DO + IF Hash[I] = 1 THEN RETURN I END + END; + END UniqueNumber; + +BEGIN + SIO.PutInt(UniqueNumber(A1)); SIO.Nl(); + SIO.PutInt(UniqueNumber(A2)); SIO.Nl(); + SIO.PutInt(UniqueNumber(A3)); SIO.Nl(); + SIO.PutInt(UniqueNumber(A4)); SIO.Nl() +END Ch1. + diff --git a/challenge-283/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-283/deadmarshal/modula-3/ch1/src/m3makefile new file mode 100644 index 0000000000..9f66e4a51f --- /dev/null +++ b/challenge-283/deadmarshal/modula-3/ch1/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch1") +program("ch1") + diff --git a/challenge-283/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-283/deadmarshal/modula-3/ch2/src/Ch2.m3 new file mode 100644 index 0000000000..4ad523093e --- /dev/null +++ b/challenge-283/deadmarshal/modula-3/ch2/src/Ch2.m3 @@ -0,0 +1,24 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT SIO; + +VAR + A1:ARRAY[0..3] OF CARDINAL := ARRAY OF CARDINAL{1,2,1,0}; + A2:ARRAY[0..2] OF CARDINAL := ARRAY OF CARDINAL{0,3,0}; + +PROCEDURE DigitCountValue(VAR A:ARRAY OF CARDINAL):BOOLEAN = + VAR + Hash:ARRAY[0..9] OF CARDINAL := ARRAY[0..9] OF CARDINAL{0,..}; + BEGIN + FOR I := FIRST(A) TO LAST(A) DO INC(Hash[A[I] MOD 10]) END; + FOR I := FIRST(A) TO LAST(A) DO + IF Hash[I] # A[I] THEN RETURN FALSE END + END; + RETURN TRUE + END DigitCountValue; + +BEGIN + SIO.PutBool(DigitCountValue(A1)); SIO.Nl(); + SIO.PutBool(DigitCountValue(A2)); SIO.Nl() +END Ch2. + diff --git a/challenge-283/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-283/deadmarshal/modula-3/ch2/src/m3makefile new file mode 100644 index 0000000000..cd51aa87ee --- /dev/null +++ b/challenge-283/deadmarshal/modula-3/ch2/src/m3makefile @@ -0,0 +1,6 @@ +import("libm3") +import("libsio") +implementation("Ch2") +program("ch2") + + diff --git a/challenge-283/deadmarshal/perl/ch-1.pl b/challenge-283/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..637609e11c --- /dev/null +++ b/challenge-283/deadmarshal/perl/ch-1.pl @@ -0,0 +1,15 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::MoreUtils qw(singleton); + +sub unique_number{ + my @arr = singleton @{$_[0]}; + @arr == 1 ? $arr[0] : undef +} + +printf "%d\n",unique_number([3,3,1]); +printf "%d\n",unique_number([3,2,4,2,4]); +printf "%d\n",unique_number([1]); +printf "%d\n",unique_number([4,3,1,1,1,4]); + diff --git a/challenge-283/deadmarshal/perl/ch-2.pl b/challenge-283/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..4888899815 --- /dev/null +++ b/challenge-283/deadmarshal/perl/ch-2.pl @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::MoreUtils qw(all frequency); + +sub digit_count_value{ + my ($i,%h) = (0,frequency(@{$_[0]})); + all{($h{$i++} // 0) == $_} @{$_[0]} +} + +printf "%d\n",digit_count_value([1,2,1,0]); +printf "%d\n",digit_count_value([0,3,0]); + diff --git a/challenge-283/deadmarshal/raku/ch-1.raku b/challenge-283/deadmarshal/raku/ch-1.raku new file mode 100644 index 0000000000..261efae976 --- /dev/null +++ b/challenge-283/deadmarshal/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku + +sub unique-number(@arr) +{ + @arr (-) @arr.repeated +} + +say unique-number([3,3,1]); +say unique-number([3,2,4,2,4]); +say unique-number([1]); +say unique-number([4,3,1,1,1,4]); + diff --git a/challenge-283/deadmarshal/raku/ch-2.raku b/challenge-283/deadmarshal/raku/ch-2.raku new file mode 100644 index 0000000000..b26f52e258 --- /dev/null +++ b/challenge-283/deadmarshal/raku/ch-2.raku @@ -0,0 +1,10 @@ +#!/usr/bin/env raku + +sub digit-count-value(@arr) +{ + @arr.pairs.Bag eqv @arr.Bag +} + +say digit-count-value([1,2,1,0]); +say digit-count-value([0,3,0]); + diff --git a/challenge-283/deadmarshal/ruby/ch1.rb b/challenge-283/deadmarshal/ruby/ch1.rb new file mode 100644 index 0000000000..d8b2474b21 --- /dev/null +++ b/challenge-283/deadmarshal/ruby/ch1.rb @@ -0,0 +1,11 @@ +#!/usr/bin/env ruby + +def unique_number(arr) + arr.uniq.find{|e| arr.count(e) == 1} +end + +puts unique_number([3,3,1]) +puts unique_number([3,2,4,2,4]) +puts unique_number([1]) +puts unique_number([4,3,1,1,1,4]) + diff --git a/challenge-283/deadmarshal/ruby/ch2.rb b/challenge-283/deadmarshal/ruby/ch2.rb new file mode 100644 index 0000000000..4d711245f8 --- /dev/null +++ b/challenge-283/deadmarshal/ruby/ch2.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby + +def digit_count_value(arr) + h = Hash.new(0) + arr.each{|e| h[e] += 1} + i = 0 + arr.all?{|e| h[i] == e && i += 1} +end + +puts digit_count_value([1,2,1,0]) +puts digit_count_value([0,3,0]) + |
