diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-08-31 23:45:25 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-08-31 23:45:25 +0100 |
| commit | 4d856a5504960441b15eb0a26942e135856b4355 (patch) | |
| tree | e8d522e885fc7e4f00ca21840b4008047dea1c8e | |
| parent | a9cdeaba6692662f2685c53245b1abc5536c478b (diff) | |
| download | perlweeklychallenge-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.awk | 14 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/c/ch-2.c | 27 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/d/ch-2.d | 16 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/go/ch-2.go | 21 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/java/TrimList.java | 20 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/javascript/ch-2.js | 12 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/julia/ch-1.jl | 13 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/julia/ch-2.jl | 5 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/kotlin/ch-2.kt | 22 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/lua/ch-2.lua | 12 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/pascal/ch-2.pas | 28 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/python/ch-2.py | 4 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/ring/ch-2.ring | 15 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/ruby/ch-2.rb | 6 | ||||
| -rw-r--r-- | challenge-180/laurent-rosenfeld/scala/ch-2.scala | 12 |
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(" ")) + } +} |
