题解 | #判断两个IP是否属于同一子网#

判断两个IP是否属于同一子网

https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218

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 k = 0;
    let arr = [];
    while ((line = await readline())) {
        arr.push(line);
        k++;
        if (k % 3 == 0) {
            getResult(arr);
            arr = [];
        }
    }
})();
function getResult(data) {
    let str1 = data[0]
    let str2 = data[1]
    let str3 = data[2]
    let res = 0;

    let a = str1.split(".").map(a => {
        if (0 <= parseInt(a) && parseInt(a) <= 255) {
            return fillZera(8 - parseInt(a).toString(2).length, parseInt(a).toString(2))
        } else {
            res = 1
        }
    })

    if (a.join("").substring(a.join("").indexOf(0)).indexOf(1) != -1) {
        res = 1
    }

    let b = str2.split(".").map(a => {
        if (0 <= parseInt(a) && parseInt(a) <= 255) {
            return fillZera(8 - parseInt(a).toString(2).length, parseInt(a).toString(2))
        } else {
            res = 1
        }
    })

    let c = str3.split(".").map(a => {
        if (0 <= parseInt(a) <= 255) {
            return fillZera(8 - parseInt(a).toString(2).length, parseInt(a).toString(2))
        } else {
            res = 1
        }
    })
    if (res == 1) {
        console.log(res)
        return;
    }

    let res1 = "";
    let res2 = "";
    let a1 = a.join("");
    let b1 = b.join("");
    let c1 = c.join("");
    for (let i = 0; i < a1.length; i++) {
        res1 += (parseInt(a1[i]) && parseInt(b1[i])).toString()
    }
    for (let i = 0; i < a1.length; i++) {
        res2 += (parseInt(a1[i]) && parseInt(c1[i])).toString()
    }

    if (res1 == res2) {
        res = 0
    } else {
        res = 2
    }
    console.log(res)
}
function fillZera(num, str) {
    let zera = "";
    for (let i = 0; i < num; i++) {
        zera += "0"
    }
    return zera + str
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-07 00:20
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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