diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-02-18 08:54:53 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-18 08:54:53 +0000 |
| commit | 71afa87bd072cd8dad19731543ba3158d964432e (patch) | |
| tree | 703519b50a4a5eb332ce0fe9c7e24550f20cfbf7 | |
| parent | 115a5c28fcf2a6638a07be62a48ab9373bc8735a (diff) | |
| parent | 0bd71eed59c59babee8d119941376d86fb1caf4e (diff) | |
| download | perlweeklychallenge-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.js | 19 | ||||
| -rw-r--r-- | challenge-250/zapwai/javascript/ch-2.js | 23 | ||||
| -rw-r--r-- | challenge-251/zapwai/javascript/ch-1.js | 20 | ||||
| -rw-r--r-- | challenge-251/zapwai/javascript/ch-2.js | 39 | ||||
| -rw-r--r-- | challenge-252/zapwai/javascript/ch-1.js | 25 | ||||
| -rw-r--r-- | challenge-252/zapwai/javascript/ch-2.js | 17 | ||||
| -rw-r--r-- | challenge-253/zapwai/javascript/ch-1.js | 25 | ||||
| -rw-r--r-- | challenge-253/zapwai/javascript/ch-2.js | 66 | ||||
| -rw-r--r-- | challenge-254/zapwai/javascript/ch-1.js | 29 | ||||
| -rw-r--r-- | challenge-254/zapwai/javascript/ch-2.js | 34 | ||||
| -rw-r--r-- | challenge-255/zapwai/javascript/ch-1.js | 45 | ||||
| -rw-r--r-- | challenge-255/zapwai/javascript/ch-2.js | 39 |
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); |
