题解 | #密码验证合格程序#

密码验证合格程序

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;
}

全部评论

相关推荐

想回学校的华夫饼不愿...:全是ppt大赛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务