题解 | #字符串合并处理#
字符串合并处理
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); } })();