diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-09-16 20:22:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-16 20:22:45 +0100 |
| commit | 6ba96d45227883a88bec4e91870d341e097ca8d1 (patch) | |
| tree | 77e38d414aaea777fa5f89cdd1c3837c8f759ad6 /challenge-287/zapwai/javascript/ch-1.js | |
| parent | 7211ba649cbe1119acfa16d7fa942f70e3b2759d (diff) | |
| parent | 3e3e9530a265cb3f549a3556bb78ffdcb1023650 (diff) | |
| download | perlweeklychallenge-club-6ba96d45227883a88bec4e91870d341e097ca8d1.tar.gz perlweeklychallenge-club-6ba96d45227883a88bec4e91870d341e097ca8d1.tar.bz2 perlweeklychallenge-club-6ba96d45227883a88bec4e91870d341e097ca8d1.zip | |
Merge pull request #10852 from zapwai/branch-for-287
Week 287
Diffstat (limited to 'challenge-287/zapwai/javascript/ch-1.js')
| -rw-r--r-- | challenge-287/zapwai/javascript/ch-1.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/challenge-287/zapwai/javascript/ch-1.js b/challenge-287/zapwai/javascript/ch-1.js new file mode 100644 index 0000000000..716ad43bb9 --- /dev/null +++ b/challenge-287/zapwai/javascript/ch-1.js @@ -0,0 +1,63 @@ +let str = "a"; +proc(str); +str = "aB2"; +proc(str); +str = "PaaSW0rd"; +proc(str); +str = "turbbbbot"; +proc(str); +str = "111"; +proc(str); + +function proc(str) { + console.log( "Input:", str); + let len = str.length; + let len_diff = 0; + if (len < 6) { + len_diff = 6 - len; + } else if (len > 20) { + len_diff = len - 20; + } + let l = str.split(""); + let lengths = []; + let hits = 0; + for (let i = 0; i < l.length - 1; i++) { + if (l[i] == l[i+1]) { + hits++; + } else { + if (hits > 1) { + lengths.push(1+hits); + } + hits = 0; + } + } + if (hits > 1) { + lengths.push(1+hits); + } + let steps = 0; + for (let l of lengths) { + steps += Math.floor(l/3); + } + let lflag = 1; + let uflag = 1; + let dflag = 1; + let lreg = new RegExp('[a-z]'); + let ureg = new RegExp('[A-Z]'); + let dreg = new RegExp('\d'); + if (lreg.test(str)) { + lflag = 0; + } + if (ureg.test(str)) { + uflag = 0; + } + if (dreg.test(str)) { + dflag = 0; + } + let tally = lflag + uflag + dflag; + let out_val = len_diff + steps; + if (out_val < tally) { + out_val += tally - out_val; + } + console.log( "Output: ", out_val); +} + |
