题解 | #字符串合并处理#

字符串合并处理

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);
});


全部评论

相关推荐

10-13 16:58
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务