const rl = require("readline").createInterface({ input: process.stdin, output: process.stdout, }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { while ((line = await readline())) { // 1.合并 // 2.排序(按奇偶位置) let targetStr = ""; const [str1, str2] = line.split(" "); const arr = (str1 + str2).split(""); let arr1 = arr.filter((item, i) => i % 2 == 0).sort(); let arr2 = arr.filter((item, i) => i % 2 == 1).sort(); arr.forEach((item, index) => { if (index % 2 == 0) { targetStr += arr1.shift(0); } else { targetStr += arr2.shift(0); } }); // 3.字符串转换(十六进制换成十进制,再转成2进制,再倒序,转成10进制,再转成16进制,再转成大写) let targetArr = targetStr.split(""); let result = []; for (let i = 0; i < targetArr.length; i++) { let item = targetArr[i]; let finalStr = item; if (/[0-9|a-f|A-F]/.test(item)) { let num = parseInt(item, 16) .toString(2) .padStart(4, 0) .split("") .reverse() .join(""); const tempItem = parseInt(num, 2); // 大于等于10 转16进制 if (tempItem >= 10) { finalStr = String.fromCharCode(tempItem + 55); } else { finalStr = String(tempItem); } } result.push(finalStr); } console.log(result.join("")); } })();