aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-02-18 08:54:53 +0000
committerGitHub <noreply@github.com>2024-02-18 08:54:53 +0000
commit71afa87bd072cd8dad19731543ba3158d964432e (patch)
tree703519b50a4a5eb332ce0fe9c7e24550f20cfbf7
parent115a5c28fcf2a6638a07be62a48ab9373bc8735a (diff)
parent0bd71eed59c59babee8d119941376d86fb1caf4e (diff)
downloadperlweeklychallenge-club-71afa87bd072cd8dad19731543ba3158d964432e.tar.gz
perlweeklychallenge-club-71afa87bd072cd8dad19731543ba3158d964432e.tar.bz2
perlweeklychallenge-club-71afa87bd072cd8dad19731543ba3158d964432e.zip
Merge pull request #9596 from zapwai/branch-for-recent-js
Branch for recent js
-rw-r--r--challenge-250/zapwai/javascript/ch-1.js19
-rw-r--r--challenge-250/zapwai/javascript/ch-2.js23
-rw-r--r--challenge-251/zapwai/javascript/ch-1.js20
-rw-r--r--challenge-251/zapwai/javascript/ch-2.js39
-rw-r--r--challenge-252/zapwai/javascript/ch-1.js25
-rw-r--r--challenge-252/zapwai/javascript/ch-2.js17
-rw-r--r--challenge-253/zapwai/javascript/ch-1.js25
-rw-r--r--challenge-253/zapwai/javascript/ch-2.js66
-rw-r--r--challenge-254/zapwai/javascript/ch-1.js29
-rw-r--r--challenge-254/zapwai/javascript/ch-2.js34
-rw-r--r--challenge-255/zapwai/javascript/ch-1.js45
-rw-r--r--challenge-255/zapwai/javascript/ch-2.js39
12 files changed, 381 insertions, 0 deletions
diff --git a/challenge-250/zapwai/javascript/ch-1.js b/challenge-250/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..250e412f12
--- /dev/null
+++ b/challenge-250/zapwai/javascript/ch-1.js
@@ -0,0 +1,19 @@
+let ints = [0, 1, 2];
+let ints2 = [4, 3, 2, 1];
+let ints3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
+
+proc(ints);
+proc(ints2);
+proc(ints3);
+
+function proc(ints) {
+ let k = -1;
+ for (let i = 0; i < ints.length; i++) {
+ if (i % 10 == ints[i]) {
+ k = i;
+ break;
+ }
+ }
+ console.log("Input:",ints);
+ console.log("Output:",k);
+}
diff --git a/challenge-250/zapwai/javascript/ch-2.js b/challenge-250/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..869729bb7d
--- /dev/null
+++ b/challenge-250/zapwai/javascript/ch-2.js
@@ -0,0 +1,23 @@
+let alph = ["perl", "2", "000", "python", "r4ku"];
+let alph2 = ["001", "1", "000", "0001"];
+
+proc(alph);
+proc(alph2);
+
+function proc(alph) {
+ let max = 0;
+ for (let word of alph) {
+ let reg = /^\d+$/;
+ let n = word.match(reg);
+ if (n == null) {
+ n = word.length;
+ } else {
+ n = Math.max(n);
+ }
+ if (max < n) {
+ max = n;
+ }
+ }
+ console.log("Input:",alph);
+ console.log("Output:",max);
+}
diff --git a/challenge-251/zapwai/javascript/ch-1.js b/challenge-251/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..fcaf73900b
--- /dev/null
+++ b/challenge-251/zapwai/javascript/ch-1.js
@@ -0,0 +1,20 @@
+let ints = [6, 12, 25, 1];
+let ints2 = [10, 7, 31, 5, 2, 2];
+let ints3 = [1, 2, 10];
+proc(ints);
+proc(ints2);
+proc(ints3);
+function proc(ints) {
+ console.log("Input:", ints);
+ let sum = 0;
+ while (ints.length > 0) {
+ let a = ints.shift();
+ let num = a;
+ if (ints.length > 0) {
+ let b = ints.pop();
+ num = `${a}`+`${b}`;
+ }
+ sum += parseInt(num);
+ }
+ console.log("Output:", sum);
+}
diff --git a/challenge-251/zapwai/javascript/ch-2.js b/challenge-251/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..921c64ca25
--- /dev/null
+++ b/challenge-251/zapwai/javascript/ch-2.js
@@ -0,0 +1,39 @@
+let m = [ [ 3, 7, 8],
+ [ 9, 11, 13],
+ [15, 16, 17] ];
+
+let m2 = [ [ 1, 10, 4, 2],
+ [ 9, 3, 8, 7],
+ [15, 16, 17, 12] ];
+
+let m3 = [ [7 ,8],
+ [1 ,2] ];
+
+proc(m);
+proc(m2);
+proc(m3);
+
+function proc(m) {
+ let mins = [];
+ for (let row of m) {
+ mins.push(Math.min(...row));
+ }
+ let maxs = [];
+ for (let j = 0; j < m[0].length; j++) {
+ let col = [];
+ for (let i = 0; i < m.length; i++) {
+ col.push(m[i][j]);
+ }
+ maxs.push(Math.max(...col));
+ }
+ let x;
+ for (let i of mins) {
+ for (let j of maxs) {
+ if (i == j) {
+ x = i;
+ }
+ }
+ }
+ console.log("Input: m =", m);
+ console.log("Output:", x);
+}
diff --git a/challenge-252/zapwai/javascript/ch-1.js b/challenge-252/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..8b95a0d51c
--- /dev/null
+++ b/challenge-252/zapwai/javascript/ch-1.js
@@ -0,0 +1,25 @@
+let ints = [1, 2, 3, 4];
+let ints2 = [2, 7, 1, 19, 18, 3];
+
+proc(ints);
+proc(ints2);
+
+function total( list ) {
+ let sum = 0;
+ for (let i of list) {
+ sum += i*i;
+ }
+ return sum;
+}
+
+function proc( ints ) {
+ let n = ints.length;
+ let spec = [];
+ for (let i = 0; i < n; i++) {
+ if (n % (i + 1) == 0) {
+ spec.push(ints[i]);
+ }
+ }
+ console.log("Input:", ints);
+ console.log("Output:", total( spec ));
+}
diff --git a/challenge-252/zapwai/javascript/ch-2.js b/challenge-252/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..1fe5b40823
--- /dev/null
+++ b/challenge-252/zapwai/javascript/ch-2.js
@@ -0,0 +1,17 @@
+let inputs = [5, 3, 1];
+for (let inp of inputs) {
+ proc(inp);
+}
+function proc(n) {
+ let list = [];
+ if (n % 2 == 1) {
+ list.push(0);
+ }
+ let k = parseInt(n / 2);
+ for (let i = 0; i < k; i++) {
+ list.push(-1 * (i+1));
+ list.push(i+1);
+ }
+ console.log("Input:", n);
+ console.log("Output:", list);
+}
diff --git a/challenge-253/zapwai/javascript/ch-1.js b/challenge-253/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..07fb587a38
--- /dev/null
+++ b/challenge-253/zapwai/javascript/ch-1.js
@@ -0,0 +1,25 @@
+function proc(words, sep) {
+ let list = [];
+ for (let word of words) {
+ let wordmaybe = word.split(sep);
+ for (let w of wordmaybe) {
+ if (w != "") {
+ list.push(w);
+ }
+ }
+ }
+ console.log("Input:", words);
+ console.log("Output:", list);
+}
+
+
+function main() {
+ let words = ["one.two.three","four.five","six"];
+ let sep = ".";
+ let words2 = ["$perl$$", "$$raku$"];
+ let sep2 = "$";
+ proc(words, sep);
+ proc(words2, sep2);
+}
+
+main();
diff --git a/challenge-253/zapwai/javascript/ch-2.js b/challenge-253/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..d713bf0f93
--- /dev/null
+++ b/challenge-253/zapwai/javascript/ch-2.js
@@ -0,0 +1,66 @@
+let m1 = [
+ [1, 1, 0, 0, 0],
+ [1, 1, 1, 1, 0],
+ [1, 0, 0, 0, 0],
+ [1, 1, 0, 0, 0],
+ [1, 1, 1, 1, 1]
+];
+
+let m2 = [
+ [1, 0, 0, 0],
+ [1, 1, 1, 1],
+ [1, 0, 0, 0],
+ [1, 0, 0, 0]
+];
+
+proc(m1);
+proc(m2);
+
+function tally_row(m, i) {
+ let sum = 0;
+ for (let j = 0; j < m[0].length; j++) {
+ sum += m[i][j];
+ }
+ return sum;
+}
+
+// Return True if i is weaker than j
+function is_weaker(m, i, j) {
+ let ti = tally_row(m, i);
+ let tj = tally_row(m, j);
+ if (ti < tj) {
+ return true;
+ } else if (ti == tj) {
+ return i < j;
+ } else {
+ return false;
+ }
+}
+
+function mysort(m, list) {
+ let cnt = 0;
+ do {
+ cnt = 0;
+ for (let i = 0; i < list.length - 1; i++) {
+ if (is_weaker(m, list[i], list[i+1])) {
+ cnt++;
+ let tmp = list[i];
+ list[i] = list[i+1];
+ list[i+1] = tmp;
+ }
+ }
+ } while (cnt > 0);
+ return list;
+}
+
+function proc(m) {
+ console.log("Input:", m);
+ let list = [];
+ for (let i = 0; i < m.length; i++) {
+ list.push(i);
+ }
+ mysort(m, list);
+ list.reverse();
+ console.log("Output:",list);
+}
+
diff --git a/challenge-254/zapwai/javascript/ch-1.js b/challenge-254/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..abb4dbc19d
--- /dev/null
+++ b/challenge-254/zapwai/javascript/ch-1.js
@@ -0,0 +1,29 @@
+function main() {
+ let n1 = 27;
+ let n2 = 0;
+ let n3 = 6;
+ console.log(`Input: ${n1}`);
+ console.log(`Output: ${is_pow(n1)}`);
+ console.log(`Input: ${n2}`);
+ console.log(`Output: ${is_pow(n2)}`);
+ console.log(`Input: ${n3}`);
+ console.log(`Output: ${is_pow(n3)}`);
+
+}
+
+function is_pow(n) {
+ if (n < 3) {
+ return false;
+ }
+ do {
+ n /= 3;
+ if (n == 1) {
+ return true;
+ } else if (n % 3 != 0) {
+ return false;
+ }
+ }
+ while (1);
+}
+
+main();
diff --git a/challenge-254/zapwai/javascript/ch-2.js b/challenge-254/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..9dccd35472
--- /dev/null
+++ b/challenge-254/zapwai/javascript/ch-2.js
@@ -0,0 +1,34 @@
+let vowelList = "aeiouAEIOU";
+let inputs = ["Perl", "Raku", "Julia", "Uiua"];
+for (let inp of inputs) {
+ let vows = [];
+ let pos = [];
+ let c = inp.split("");
+ for (let i = 0; i < inp.length; i++) {
+ for (let v of vowelList) {
+ if (c[i] == v) {
+ vows.push(v);
+ pos.push(i);
+ break;
+ }
+ }
+ }
+ console.log("Input:", inp);
+ vows = vows.reverse();
+ let ans = "";
+ let j = 0;
+ for (let i = 0; i < inp.length; i++) {
+ let vflag = false;
+ for (p of pos) {
+ if (i == p) {
+ ans += vows[j];
+ j++;
+ vflag = true;
+ }
+ }
+ if (!vflag) {
+ ans += inp[i];
+ }
+ }
+ console.log("Output:", ans);
+}
diff --git a/challenge-255/zapwai/javascript/ch-1.js b/challenge-255/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..d90e0b3051
--- /dev/null
+++ b/challenge-255/zapwai/javascript/ch-1.js
@@ -0,0 +1,45 @@
+let [s, t] = ["Perl", "Preel"];
+let [s2, t2] = ["Weekly", "Weeakly"];
+let [s3, t3] = ["Box", "Boxy"];
+proc(s, t);
+proc(s2, t2);
+proc(s3, t3);
+function proc(s,t) {
+ console.log(`Input: s: ${s}, t: ${t}`);
+ let f = {};
+ for (let l of s.split("")) {
+ f[l] = 0;
+ }
+ let g = {};
+ for (let l of t.split("")) {
+ g[l] = 0;
+ }
+ for (let l of s.split("")) {
+ f[l]++;
+ }
+ for (let l of t.split("")) {
+ g[l]++;
+ }
+ let letter;
+ for (let G of Object.keys(g)) {
+ let cnt = 0;
+ for (let F of Object.keys(f)) {
+ if (F == G) {
+ break;
+ }
+ cnt++;
+ }
+ if (cnt == Object.keys(f).length) {
+ letter = G;
+ }
+ }
+ if (letter == undefined) {
+ for (let l of Object.keys(f)) {
+ if (f[l] < g[l]) {
+ letter = l;
+ }
+ }
+ }
+ console.log(`Output: ${letter}`);
+}
+
diff --git a/challenge-255/zapwai/javascript/ch-2.js b/challenge-255/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..6c9c7a7991
--- /dev/null
+++ b/challenge-255/zapwai/javascript/ch-2.js
@@ -0,0 +1,39 @@
+let p = "Joe hit a ball, the hit ball flew far after it was hit.";
+let w = "hit";
+
+let p2 = "Perl and Raku belong to the same family. Perl is the most popular language in the weekly challenge.";
+let w2 = "the";
+
+function proc(p, w) {
+ let f = {};
+ let mywords = [];
+ let words = p.split(" ");
+ for (let word of words) {
+ let c = word.split("");
+ if ( (c[word.length - 1] == ".") ||
+ (c[word.length - 1] == ",") ) {
+ word = word.slice(0,-1);
+ }
+ if (word == w) {
+ continue;
+ }
+ f[word] = 0;
+ mywords.push(word);
+ }
+ for (let word of mywords) {
+ f[word]++;
+ }
+ console.log(`Input: ${p}, ${w}`);
+ let max = 0;
+ let maxword;
+ for (let k of Object.keys(f)) {
+ if (max < f[k]) {
+ max = f[k];
+ maxword = k;
+ }
+ }
+ console.log(maxword);
+}
+
+proc(p, w);
+proc(p2, w2);