提交了5次才过
// 有效代码 const exec = (line: string) => { if (0 === (inputCount = (inputCount + 1) % 3)) { const [msk, ip0] = outputs.splice(outputs.length - 2, outputs.length); const ip1 = line; const msks = msk.split(/\./).map(s => Number.parseInt(s, 10)); if (!mskReg.test(msks.reduce((a, b) => a + b.toString(2).padStart(8, "0"), ""))) { return 1; } else if (reg.test(ip0) && reg.test(ip1) && reg.test(msk)) { const ip0s = ip0.split(/\./).map(s => Number.parseInt(s, 10)); const ip1s = ip1.split(/\./).map(s => Number.parseInt(s, 10)); for (let i = 0; i < 4; i++) { if ((ip0s[i] & msks[i]) !== (ip1s[i] & msks[i])) { return 2; } } return 0; } else { return 1; } } else return line; }; let inputCount = 0; const part = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; const reg = new RegExp(`^${new Array(4).fill(part).join("\\.")}$`); const mskReg = /^1+0+?$/; // ACM 模式八股文代码别看 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on("line", (line: string) => (res => (res !== undefined ? outputs.push(`${res}`) : null))(exec(line))); rl.on("close", () => outputs.forEach(res => console.log(res))); const outputs: string[] = [];