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

字符串合并处理

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

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
    const transfer = (str) => {
        let newStr = "0000";
        for (let i of str) {
            newStr = i.concat(newStr);
        }
        return newStr.slice(0, 4);
    };

    while ((line = await readline())) {
        let tokens = line.split(" ");
        let str = tokens.join("");
        let jiArr = [];
        let ouArr = [];
        let newArr = [];
        let newStr = "";
        for (let i = 0; i < str.length; i++) {
            i % 2 === 0 ? jiArr.push(str[i]) : ouArr.push(str[i]);
        }
        jiArr.sort();
        ouArr.sort();
        for (let i = 0; i < jiArr.length; i++) {
            newArr.push(jiArr[i]);
            if (ouArr[i]) newArr.push(ouArr[i]);
        }
        for (let i of newArr) {
            let er;
            if (/[0-9]/.test(i)) er = parseInt(i).toString(2);
            else if (/[a-fA-F]/.test(i)) er = parseInt(i, 16).toString(2);
            else {
                newStr = newStr.concat(i);
            }
            if (er) {
                let transNum = transfer(er);
                let final = parseInt(transNum, 2).toString(10);
                if (final > 9)
                    final = parseInt(final).toString(16).toUpperCase();
                newStr = newStr.concat(final);
            }
        }
        console.log(newStr);
    }
})();

全部评论

相关推荐

09-01 11:31
门头沟学院 Java
buul:七牛云的吧,感觉想法是好的,但是大家没那么多时间弄他这个啊。。。不知道的还以为他是顶尖大厂呢还搞比赛抢hc,只能说应试者的痛苦考察方是无法理解的,他们只会想一出是一出
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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