题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
这题相对来说比较简单了 分别构建一个加密和解密function即可 完整代码如下:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
let lines = []
void async function () {
// Write your code here
while(line = await readline()){
lines.push(line);
if (lines.length == 2){
console.log(encryption(lines[0]));
console.log(decryption(lines[1]));
}
}
}()
function encryption(str) {
let newStr = str.split('.').map(x => parseInt(x).toString(2).padStart(8, '0')).join('');
return parseInt(newStr, 2);
}
function decryption(str) {
let arr = parseInt(str).toString(2).padStart(32, '0').match(/.{1,8}/g).map(x => parseInt(x, 2)); // 这里利用match()方法实现对字符串分段的小技巧
return arr.join('.')
}