aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-08-31 23:45:25 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-08-31 23:45:25 +0100
commit4d856a5504960441b15eb0a26942e135856b4355 (patch)
treee8d522e885fc7e4f00ca21840b4008047dea1c8e
parenta9cdeaba6692662f2685c53245b1abc5536c478b (diff)
downloadperlweeklychallenge-club-4d856a5504960441b15eb0a26942e135856b4355.tar.gz
perlweeklychallenge-club-4d856a5504960441b15eb0a26942e135856b4355.tar.bz2
perlweeklychallenge-club-4d856a5504960441b15eb0a26942e135856b4355.zip
- Added guest contributions by Laurent Rosenfeld.
-rw-r--r--challenge-180/laurent-rosenfeld/awk/ch-2.awk14
-rw-r--r--challenge-180/laurent-rosenfeld/c/ch-2.c27
-rw-r--r--challenge-180/laurent-rosenfeld/d/ch-2.d16
-rw-r--r--challenge-180/laurent-rosenfeld/go/ch-2.go21
-rw-r--r--challenge-180/laurent-rosenfeld/java/TrimList.java20
-rw-r--r--challenge-180/laurent-rosenfeld/javascript/ch-2.js12
-rw-r--r--challenge-180/laurent-rosenfeld/julia/ch-1.jl13
-rw-r--r--challenge-180/laurent-rosenfeld/julia/ch-2.jl5
-rw-r--r--challenge-180/laurent-rosenfeld/kotlin/ch-2.kt22
-rw-r--r--challenge-180/laurent-rosenfeld/lua/ch-2.lua12
-rw-r--r--challenge-180/laurent-rosenfeld/pascal/ch-2.pas28
-rw-r--r--challenge-180/laurent-rosenfeld/python/ch-2.py4
-rw-r--r--challenge-180/laurent-rosenfeld/ring/ch-2.ring15
-rw-r--r--challenge-180/laurent-rosenfeld/ruby/ch-2.rb6
-rw-r--r--challenge-180/laurent-rosenfeld/scala/ch-2.scala12
15 files changed, 227 insertions, 0 deletions
diff --git a/challenge-180/laurent-rosenfeld/awk/ch-2.awk b/challenge-180/laurent-rosenfeld/awk/ch-2.awk
new file mode 100644
index 0000000000..29d41e1593
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/awk/ch-2.awk
@@ -0,0 +1,14 @@
+# run for example as:
+# echo '3 1 4 2 3 5
+# 4 9 0 6 2 3 85 ' | awk -f trim_list.awk
+
+{
+ i = $1
+ printf "Input = %-18s- i = %d => result = ", $0, $1
+ for (j = 2; j <= NF; j++) {
+ if ( $j > i) {
+ printf "%d ", $j
+ }
+ }
+ print ""
+}
diff --git a/challenge-180/laurent-rosenfeld/c/ch-2.c b/challenge-180/laurent-rosenfeld/c/ch-2.c
new file mode 100644
index 0000000000..fd3e7896f2
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/c/ch-2.c
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include <string.h>
+
+int main() {
+ const char tests[2][10] = {
+ { 3, 1, 4, 2, 3, 5 },
+ { 4, 9, 0, 6, 2, 3, 8, 5 }
+ };
+ for (int j = 0; j <=1; j++) {
+ char test[10];
+ memcpy(test, tests[j], sizeof(tests[j]));
+ int i = test[0];
+ printf("i = %d; nums = ", i);
+ /* printing input test array */
+ for (char k = 1; k < sizeof(test); k++) {
+ printf("%d ", test[k]);
+ }
+ printf(" => ");
+ /* printing the result */
+ for (char k = 1; k < sizeof(test); k++) {
+ if (test[k] > i) {
+ printf("%d ", test[k]);
+ }
+ }
+ printf("%s\n", "");
+ }
+}
diff --git a/challenge-180/laurent-rosenfeld/d/ch-2.d b/challenge-180/laurent-rosenfeld/d/ch-2.d
new file mode 100644
index 0000000000..e0930a0594
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/d/ch-2.d
@@ -0,0 +1,16 @@
+import std.stdio;
+
+void main() {
+ int[][][] tests = [[[3], [1,4,2,3,5]], [[4], [9,0,6,2,3,8,5]]];
+ foreach(test; tests) {
+ int i = test[0][0];
+ int[] nums = test[1];
+ write(i, " ", nums, " => ");
+ for (int j = 0; j < nums.length; j++) {
+ if (nums[j] > i) {
+ printf("%d ", nums[j]);
+ }
+ }
+ writeln("");
+ }
+}
diff --git a/challenge-180/laurent-rosenfeld/go/ch-2.go b/challenge-180/laurent-rosenfeld/go/ch-2.go
new file mode 100644
index 0000000000..1eb91486ab
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/go/ch-2.go
@@ -0,0 +1,21 @@
+package main
+
+import "fmt"
+
+func main() {
+ tests := [2][2][8]int{{{3}, {1, 4, 2, 3, 5}},
+ {{4}, {9, 0, 6, 2, 3, 8, 5}}
+ }
+ for j := 0; j < len(tests); j++ {
+ i := tests[j][0][0]
+ fmt.Printf("i = %d; nums = ", i)
+ nums := tests[j][1]
+ fmt.Print(nums, "; => ")
+ for k := 0; k < len(nums); k++ {
+ if nums[k] > i {
+ fmt.Printf("%d ", nums[k])
+ }
+ }
+ fmt.Println("")
+ }
+}
diff --git a/challenge-180/laurent-rosenfeld/java/TrimList.java b/challenge-180/laurent-rosenfeld/java/TrimList.java
new file mode 100644
index 0000000000..c11fba0400
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/java/TrimList.java
@@ -0,0 +1,20 @@
+import java.util.Arrays;
+
+public class TrimList {
+ private static final int[][][] tests =
+ {{{3}, {1,4,2,3,5}}, {{4}, {9,0,6,2,3,8,5}}};
+ public static void main(String[] args) {
+ for (int j = 0; j < tests.length; j++) {
+ int i = tests[j][0][0];
+ int[] nums = tests[j][1];
+ System.out.printf("i = %d; nums = %s => ",
+ i, Arrays.toString(nums));
+ for (int k = 0; k < nums.length; k++) {
+ if (nums[k] > i) {
+ System.out.printf("%d ", nums[k]);
+ }
+ }
+ System.out.printf("%s", "\n");
+ }
+ }
+}
diff --git a/challenge-180/laurent-rosenfeld/javascript/ch-2.js b/challenge-180/laurent-rosenfeld/javascript/ch-2.js
new file mode 100644
index 0000000000..d0a61354e0
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/javascript/ch-2.js
@@ -0,0 +1,12 @@
+tests = [[[3], [1,4,2,3,5]], [[4], [9,0,6,2,3,8,5]]];
+for(let j = 0; j < tests.length; j++) {
+ let i = tests[j][0][0]
+ let nums = tests[j][1]
+ process.stdout.write("i= " + i + " nums= " + nums + " => ")
+ for (let k = 0; k < nums.length; k++) {
+ if ( nums[k] > i) {
+ process.stdout.write(nums[k] + " ")
+ }
+ }
+ process.stdout.write("\n")
+}
diff --git a/challenge-180/laurent-rosenfeld/julia/ch-1.jl b/challenge-180/laurent-rosenfeld/julia/ch-1.jl
new file mode 100644
index 0000000000..299a47c2f9
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/julia/ch-1.jl
@@ -0,0 +1,13 @@
+for test in [ "Perl Weekly Challenge", "Long Live Perl" ]
+ histo = Dict()
+ letters = split(test, "")
+ for ch in test
+ histo[ch] = if (haskey(histo, ch)) histo[ch]+1 else 1 end
+ end
+ for i in 1:length(letters)
+ if (histo[only(letters[i])] == 1)
+ println(test, ": ", i-1)
+ break
+ end
+ end
+end
diff --git a/challenge-180/laurent-rosenfeld/julia/ch-2.jl b/challenge-180/laurent-rosenfeld/julia/ch-2.jl
new file mode 100644
index 0000000000..9ba6d0d061
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/julia/ch-2.jl
@@ -0,0 +1,5 @@
+for test in [[3, [1,4,2,3,5]], [4, [9,0,6,2,3,8,5]]]
+ i = test[1]
+ nums = test[2]
+ println( "i = $i, num = $nums => ", filter((x) -> x > i, nums))
+end
diff --git a/challenge-180/laurent-rosenfeld/kotlin/ch-2.kt b/challenge-180/laurent-rosenfeld/kotlin/ch-2.kt
new file mode 100644
index 0000000000..7d33522bb5
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/kotlin/ch-2.kt
@@ -0,0 +1,22 @@
+import java.util.Arrays
+
+fun main() {
+ val tests = arrayOf(arrayOf(intArrayOf(3,),
+ intArrayOf(1,4,2,3,5)),
+ arrayOf(intArrayOf(4,),
+ intArrayOf(9,0,6,2,3,8,5))
+ )
+
+ for (test in tests) {
+ print(Arrays.deepToString(test) + " => ")
+ var i = test[0][0]
+ var nums = test[1];
+ for (j in nums) {
+ if (j > i) {
+ print(j.toString() + " ")
+ }
+ }
+ println("")
+
+ }
+}
diff --git a/challenge-180/laurent-rosenfeld/lua/ch-2.lua b/challenge-180/laurent-rosenfeld/lua/ch-2.lua
new file mode 100644
index 0000000000..73e6a0e844
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/lua/ch-2.lua
@@ -0,0 +1,12 @@
+tests = {{{3}, {1,4,2,3,5}}, {{4}, {9,0,6,2,3,8,5}}}
+for _, test in ipairs(tests) do
+ local i = test[1][1]
+ local nums = test[2]
+ io.write("i= ", i, "; nums= ", table.concat(nums, " "), " => ")
+ for _, j in ipairs(nums) do
+ if j > i then
+ io.write(j, " ")
+ end
+ end
+ print("")
+end
diff --git a/challenge-180/laurent-rosenfeld/pascal/ch-2.pas b/challenge-180/laurent-rosenfeld/pascal/ch-2.pas
new file mode 100644
index 0000000000..93fcd9b165
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/pascal/ch-2.pas
@@ -0,0 +1,28 @@
+program TrimList;
+
+const tests : array[0..1,0..1,0..6] of integer =
+ (((3,0,0,0,0,0,0), (1,4,2,3,5,0,0)), ((4,0,0,0,0,0,0), (9,0,6,2,3,8,5)));
+
+var
+ i, j, k: integer;
+ nums: array of integer;
+
+begin
+ for j := 0 to length(tests) - 1 do
+ begin
+ i := tests[j][0][0];
+ write('i = ', i, '; nums = ');
+ nums := tests[j][1];
+ for k := 0 to length(nums) - 1 do
+ begin
+ write(nums[k], ' ');
+ end;
+ write(' => ');
+ for k := 0 to length(nums) - 1 do
+ begin
+ if nums[k] > i then
+ write(nums[k], ' ');
+ end;
+ writeln('')
+ end;
+end.
diff --git a/challenge-180/laurent-rosenfeld/python/ch-2.py b/challenge-180/laurent-rosenfeld/python/ch-2.py
new file mode 100644
index 0000000000..a8eaeb0573
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/python/ch-2.py
@@ -0,0 +1,4 @@
+for test in [3, [1,4,2,3,5]], [4, [9,0,6,2,3,8,5]]:
+ i = test[0]
+ nums = test[1]
+ print(i, nums, " => ", list(filter(lambda n: n>i, nums)))
diff --git a/challenge-180/laurent-rosenfeld/ring/ch-2.ring b/challenge-180/laurent-rosenfeld/ring/ch-2.ring
new file mode 100644
index 0000000000..9a5b47b3cc
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/ring/ch-2.ring
@@ -0,0 +1,15 @@
+for test in [[3, [1,4,2,3,5]], [4, [9,0,6,2,3,8,5]]]
+ i = test[1]
+ nums = test[2]
+ see "i = " + i + " ; nums = "
+ for j in nums
+ see "" + j + " "
+ next
+ see " => "
+ for j in nums
+ if j > i
+ see "" + j + " "
+ ok
+ next
+ see " " +nl
+next
diff --git a/challenge-180/laurent-rosenfeld/ruby/ch-2.rb b/challenge-180/laurent-rosenfeld/ruby/ch-2.rb
new file mode 100644
index 0000000000..ed067b2703
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/ruby/ch-2.rb
@@ -0,0 +1,6 @@
+for test in [ [3, [1,4,2,3,5]], [4, [9,0,6,2,3,8,5]] ]
+ i = test[0]
+ nums = test[1]
+ print "i = #{i}, nums = #{nums} => ", nums.select {|n| n > i}
+ puts " "
+end
diff --git a/challenge-180/laurent-rosenfeld/scala/ch-2.scala b/challenge-180/laurent-rosenfeld/scala/ch-2.scala
new file mode 100644
index 0000000000..8841f52af1
--- /dev/null
+++ b/challenge-180/laurent-rosenfeld/scala/ch-2.scala
@@ -0,0 +1,12 @@
+object trimList extends App {
+ val tests: List[List[List[Int]]] = List(
+ List(List(3), List(1, 4, 2, 3, 5)),
+ List(List(4), List(9, 0, 6, 2, 3, 8, 5))
+ )
+ for (test <- tests) {
+ val i = test(0)(0)
+ val nums = test(1)
+ print(s"i: $i, nums: " + nums.mkString(" "))
+ println(" => " + nums.filter(_ > i).mkString(" "))
+ }
+}