知识点
str.padStart(4, '0') 表示在str的前面填充0直到str的长度为4,同理还有padEnd
arr = arr.filter(Boolean)表示过滤掉空字符,不改变原数组
parseInt(str, 2)表示将str由二进制变为十进制
parseInt(str, 16)表示将str由十六进制变为十进制
str.toString(2)表示将str由十进制变为二进制
str.toString(16)表示将str由十进制变为十六进制
其他非十进制转为其他非十进制,需得先转为十进制,再转为其他进制
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
let str = await readline()
// 第一步
let arr = str.replace(' ', '').split('')
let len = arr.length
let arr1 = [], arr2 = []
while(arr.length) {
arr1.push(arr.shift())
arr2.push(arr.shift())
}
// 第二步
arr1.sort()
arr2 = arr2.filter(Boolean).sort()
while(arr.length < len) {
arr.push(arr1.shift())
arr.push(arr2.shift())
}
arr = arr.filter(Boolean) // 过滤掉空值
// 第三步
let res = arr.map(el =>
el = parseInt(el, 16) ? parseInt(parseInt(el, 16).toString(2).padStart(4, '0').split('').reverse().join(''), 2).toString(16).toUpperCase() : el
).join('')
console.log(res)
}()

京公网安备 11010502036488号