From 379206ccf0a24111b37b9c6996dc21fe576a3e6b Mon Sep 17 00:00:00 2001 From: David Ferrone Date: Mon, 11 Mar 2024 18:17:44 -0400 Subject: 5 Years of PWC! --- challenge-260/zapwai/javascript/ch-2.js | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 challenge-260/zapwai/javascript/ch-2.js (limited to 'challenge-260/zapwai/javascript/ch-2.js') diff --git a/challenge-260/zapwai/javascript/ch-2.js b/challenge-260/zapwai/javascript/ch-2.js new file mode 100644 index 0000000000..c7078f49fa --- /dev/null +++ b/challenge-260/zapwai/javascript/ch-2.js @@ -0,0 +1,40 @@ +function proc(word) { + console.log("Input:", word); + let h = {}; + L(word.length, word.split(''), h); + let sorted = Object.keys(h).sort(); + console.log("Output:", 1 + seek_word(word, sorted)); +} + +function L(k, list, h) { + if (k == 1) + h[list.join('')] = 1; + else { + L(k-1, list, h); + for (let i = 0; i < k-1; i++) { + if (k % 2 == 0) + swap(i, k-1, list); + else + swap(0, k-1, list); + L(k-1, list, h); + } + } +} + +function swap(i, j, list) { + let tmp = list[i]; + list[i] = list[j]; + list[j] = tmp; +} + +function seek_word(word, sorted) { + for (let i = 0; i < sorted.length; i++) + if (sorted[i] == word) + return i; + + return -1; +} + +proc("CAT"); +proc("GOGGLE"); +proc("SECRET"); -- cgit