aboutsummaryrefslogtreecommitdiff
path: root/challenge-321/roger-bell-west/javascript
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2025-05-13 14:06:50 +0100
committerRoger Bell_West <roger@firedrake.org>2025-05-13 14:06:50 +0100
commitaa6afc31ada526c649d8490e9bdcb416027686f2 (patch)
tree8a6a19b64ac7a3463e4e0b99d62cc2d7053b7b57 /challenge-321/roger-bell-west/javascript
parent152c0ffaaa3df8dfa2a5dbff97971ec378999b0a (diff)
downloadperlweeklychallenge-club-aa6afc31ada526c649d8490e9bdcb416027686f2.tar.gz
perlweeklychallenge-club-aa6afc31ada526c649d8490e9bdcb416027686f2.tar.bz2
perlweeklychallenge-club-aa6afc31ada526c649d8490e9bdcb416027686f2.zip
RogerBW solutions for challenge no. 321
Diffstat (limited to 'challenge-321/roger-bell-west/javascript')
-rwxr-xr-xchallenge-321/roger-bell-west/javascript/ch-1.js36
-rwxr-xr-xchallenge-321/roger-bell-west/javascript/ch-2.js38
2 files changed, 74 insertions, 0 deletions
diff --git a/challenge-321/roger-bell-west/javascript/ch-1.js b/challenge-321/roger-bell-west/javascript/ch-1.js
new file mode 100755
index 0000000000..d6f078281e
--- /dev/null
+++ b/challenge-321/roger-bell-west/javascript/ch-1.js
@@ -0,0 +1,36 @@
+#! /usr/bin/node
+
+"use strict"
+
+function distinctaverage(a0) {
+ let a = [...a0];
+ a.sort(function(a,b) {
+ return a-b;
+ });
+ const offset = a.length - 1;
+ const limit = Math.floor(a.length / 2);
+ let res = new Set;
+ for (let i = 0; i < limit; i++) {
+ res.add(a[i] + a[offset - i]);
+ }
+ return res.size;
+}
+
+if (distinctaverage([1, 2, 4, 3, 5, 6]) == 1) {
+ process.stdout.write("Pass");
+} else {
+ process.stdout.write("FAIL");
+}
+process.stdout.write(" ");
+if (distinctaverage([0, 2, 4, 8, 3, 5]) == 2) {
+ process.stdout.write("Pass");
+} else {
+ process.stdout.write("FAIL");
+}
+process.stdout.write(" ");
+if (distinctaverage([7, 3, 1, 0, 5, 9]) == 2) {
+ process.stdout.write("Pass");
+} else {
+ process.stdout.write("FAIL");
+}
+process.stdout.write("\n");
diff --git a/challenge-321/roger-bell-west/javascript/ch-2.js b/challenge-321/roger-bell-west/javascript/ch-2.js
new file mode 100755
index 0000000000..1a58b683d0
--- /dev/null
+++ b/challenge-321/roger-bell-west/javascript/ch-2.js
@@ -0,0 +1,38 @@
+#! /usr/bin/node
+
+"use strict"
+
+function backspacecompare(a, b) {
+ let sa = [];
+ for (let i of [a, b]) {
+ let oa = [];
+ i.split("").forEach((c, _) => {
+ if (c == '#') {
+ oa.pop();
+ } else {
+ oa.push(c);
+ }
+ });
+ sa.push(oa.join(''));
+ }
+ return sa[0] == sa[1];
+}
+
+if (backspacecompare('ab#c', 'ad#c')) {
+ process.stdout.write("Pass");
+} else {
+ process.stdout.write("FAIL");
+}
+process.stdout.write(" ");
+if (backspacecompare('ab##', 'a#b#')) {
+ process.stdout.write("Pass");
+} else {
+ process.stdout.write("FAIL");
+}
+process.stdout.write(" ");
+if (!backspacecompare('a#b', 'c')) {
+ process.stdout.write("Pass");
+} else {
+ process.stdout.write("FAIL");
+}
+process.stdout.write("\n");