题解 | 密码验证合格程序

密码验证合格程序

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
    let lineArr = [];
    while ((line = await readline())) {
        lineArr.push(line);
    }

    const reg1 = /[A-Z]/;
    const reg2 = /[a-z]/;
    const reg3 = /[0-9]/;
    const reg4 = /[^0-9a-zA-Z]/;
    const regArr = [reg1, reg2, reg3, reg4];

    function check(str) {
        if (str.length <= 8) return "NG";

        // console.log(str.length);

        let containCount = 0;
        for (let regIndex = 0; regIndex < regArr.length; regIndex++) {
            const reg = regArr[regIndex];
            if (reg.test(str)) {
                containCount += 1;
            }
        }

        if (containCount < 3) return "NG";

        // console.log(containCount, "containCount");

        for (let i = 0; i < str.length - 2; i++) {
            const strArr = str.split(str.slice(i, i + 3));
            // console.log(strArr, "strArr");
            if (strArr.length > 2) {
                return "NG";
            }
        }

        return "OK";
    }

    for (let i = 0; i < lineArr.length; i++) {
        console.log(check(lineArr[i]));
    }
})();

#华为算法题##js解法##算法题##华为OD流程#
全部评论

相关推荐

dachang盒子:26届秋招必须有实习经历,建议找个实习过度下,同时项目重复率也比较高没有什么难点亮点,我这里有大厂真实的项目可以提供给你学习也可以给你包装大厂实习来提高你的竞争力,感兴趣的话可以私信我或者点我主页简介
你已经投递多少份简历了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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