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

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f?tpId=37&tags=&title=&difficulty=0&judgeStatus=0&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37

数组排序是0,1,2,3,所以偶数(把0算在内的话)要么与奇数数量相等,要么多一个,所以在下面先插入偶数,在赋值时也是先偶数数组进行赋值

while(line = await readline()){

        let line1 =line.split(' ')

            res = line1[0]+line1[1]

            line2 = res.split('')

            arr1=[]

            arr2=[]

            x =true

            

        for (let i= 0;i<line2.length;i++){ 

            if(x) arr1.push(line2[i]),x=false//偶数下标数组,交叉插入

            else arr2.push(line2[i]),x =true//奇数下标数组,交叉插入

        }

        

        arr1.sort()//排序

        arr2.sort()

        let a=0,b=0,y=true

        for(let i= 0;i<line2.length;i++){          

            if(y) line2[i] =arr1[a],a++,y=false//交叉给原数组赋值

            else line2[i]= arr2[b],b++,y=true 

        }

        let line3 = line2.join('')

//下面是进行符号转换

            line3 = line3.replace(/[0-9a-fA-F]/g,e=>{

                let a = parseInt(e,16).toString(2)//16进制转2进制

                    b = a.split('')

                    while(b.length<4) b.unshift('0')//如果2进制位数不足4则向开头添加0,直到有4位数为止

                    c = b.reverse().join('')

                    d = parseInt(c,2).toString(16)//2进制转16进制

                    if(d.charCodeAt(0)>=97&&d.charCodeAt(0)<=122) return d.toUpperCase()//将转换进制后为小写的字母转换为大写字母

                    return d//返回最终结果

            })

            console.log(line3)

    }

全部评论

相关推荐

粗心的熊熊求求offer:什么内容都没有还弄两页
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-19 14:46
和女友两个人马上毕业,现在我在鹅实习995,周六日偶尔也去北京;她在北京金融007,经常忙到后半夜,周末也没啥休息机会两个人现在都不咋聊天了,一句话隔半小时甚至半天才回。&nbsp;她是个很优秀的妹子,工作也很努力,是值得学习一辈子的人。我在努力工作求转正,即便不行至少赚到了一段不错的实习经历。已经异地了半年,接下来可能还会持续是这个状态。我们都算是对方重要的人,只是感觉看上去不是很有未来的样子。希望牛友们给点的鼓励
梦旅奇缘:很难。异地首先就已经很难了,加上妹子是金融行业,忙碌高压,对情感需求很高,而且见惯纸醉金迷,你的很多优势在她那里可能就不算什么了。这种情况下,在她们那里遇到一个能及时照顾她的人,即使那人可能很多条件不如你,你也有可能被分手。 说白了,两个卷王就不太适合在一起。因为卷王最大的优势,在另一个卷王那里就不算优势了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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