题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
前面排序占了挺大篇幅的 如果各位有更好的方法 欢迎评论留言 完整代码如下:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", function (line) {
let arr = line.replace(' ', '').split('');
let m = arr.length;
let arr1 = []; arr2 = [];//用arr1和arr2存储偶数和奇数字符
while (arr.length > 0) {
arr1.push(arr.shift());
arr2.push(arr.shift());
}
arr1.sort();
arr2 = arr2.filter(Boolean).sort();//排序
while (arr.length < m) {//用排序后的arr1和arr2重新组成字符串
arr.push(arr1.shift());
arr.push(arr2.shift());
}
arr = arr.filter(Boolean);//注意需要过滤掉空值
let res = arr.map(x => //利用map()方法完成规定的字符转换
x = parseInt(x, 16)
? parseInt(parseInt(x, 16).toString(2).padStart(4, '0').split('').reverse().join(''), 2).toString(16).toUpperCase()
: x
).join('');
console.log(res);
});

