题解 | #判断两个IP是否属于同一子网#|
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
暴力循环遍历,JavaScript直接循环
const data = [
readline().split("."),
readline().split("."),
readline().split("."),
];
let result = 0;
let theString = "";//掩码二进制的字符串格式;
for (let i = 0; i < 4; i++) {
const num0 = Number(data[0][i]);
const num1 = Number(data[1][i]);
const num2 = Number(data[2][i]);
const thisString = `00000000${num0.toString(2)}`.slice(-8);//掩码转二进制;
theString += thisString;
if (
num0 < 0 ||
num0 > 255 ||
num1 < 0 ||
num1 > 255 ||
num2 < 0 ||
num2 > 255
) {
result = 1;//范围不对,直接报错退出;
break;
}
if ((num0 & num1) !== (num0 & num2)) {
result = 2;//证明不是子网,但后续ip可能有错,所以只是跳过一次循环;
continue;
}
}
if (!/^1{0,}0{0,}$/.test(theString)) {
result = 1;//掩码二进制格式不对,直接退出;
}
console.log(result);
查看21道真题和解析