题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
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
const transfer = (str) => {
let newStr = "0000";
for (let i of str) {
newStr = i.concat(newStr);
}
return newStr.slice(0, 4);
};
while ((line = await readline())) {
let tokens = line.split(" ");
let str = tokens.join("");
let jiArr = [];
let ouArr = [];
let newArr = [];
let newStr = "";
for (let i = 0; i < str.length; i++) {
i % 2 === 0 ? jiArr.push(str[i]) : ouArr.push(str[i]);
}
jiArr.sort();
ouArr.sort();
for (let i = 0; i < jiArr.length; i++) {
newArr.push(jiArr[i]);
if (ouArr[i]) newArr.push(ouArr[i]);
}
for (let i of newArr) {
let er;
if (/[0-9]/.test(i)) er = parseInt(i).toString(2);
else if (/[a-fA-F]/.test(i)) er = parseInt(i, 16).toString(2);
else {
newStr = newStr.concat(i);
}
if (er) {
let transNum = transfer(er);
let final = parseInt(transNum, 2).toString(10);
if (final > 9)
final = parseInt(final).toString(16).toUpperCase();
newStr = newStr.concat(final);
}
}
console.log(newStr);
}
})();
查看12道真题和解析