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

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

知识点

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-23 18:33
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
秋招不是要开始了吗,我都打算润了,看大家还在找不敢润了
一条从:因为不是人人都像佬一样有实习像我们这种二本仔秋招没有实习也是白忙活
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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