题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void async function () { // Write your code here while(line = await readline()){ if (line.length <= 8) { console.log("NG") return; } if (!validMultiFactors(line)) { console.log("NG") return; } if (!hasSubstring(line)) { console.log("NG") return; } console.log('OK'); } }() function validMultiFactors(input) { let factors = 0 if (/(?=.*\d)/.test(input)) { factors +=1 } if (/(?=.*[a-z])/.test(input)) { factors +=1 } if (/(?=.*[A-Z])/.test(input)) { factors += 1 } if (/(?=.*[^0-9a-zA-Z\s])/.test(input)) { factors += 1 } return factors >= 3 } function hasSubstring(input) { const result = {} for (let i=0;i<input.length-2;i++) { const str = input.slice(i, i+3) if (result[str]) { return false } else { result[str] = 1 } } return true; }