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

字符串合并处理

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

python的
a = input().split(' ')
b = list(a[0] + a[1])#第一步完成
index = 0
jishu = []
oushu = []
while b:#字符串拆分
    jishu.append(b.pop(0))
    if b:
        oushu.append(b.pop(0))
jishu.sort(key = lambda x:ord(x),reverse= False)#字符串排序
oushu.sort(key = lambda x:ord(x),reverse= False)
while jishu or oushu:#字符串合并,第二步完成
    b.append(jishu.pop(0))
    if oushu:
        b.append(oushu.pop(0))
result = []
for i in b:
    if ord('0')<=ord(i)<=ord('9'):#0到9
        c = bin(int(i))[2::]#取2进制,删除掉开头的0b
        c = int(('0' * (4 - len(c)) + c)[::-1],2)#二进制补全同时反转,再用int(x,2)转换为10进制
        if c < 10:#假如说小于10,直接输出数字字符
            result.append(str(c))
        else:#如果大于10,要输出A到F,大写字母,采用ASCII码直接生成
            result.append(chr(c-10+ord('A')))
    else:
        if ord('A')<= ord(i.upper())<=ord('F'):#A到F,直接大写确认
            i = i.upper()
            c = bin(ord(i)-ord('A')+10)[2::]#通过ASCII码算出对应16进制,然后转换为二进制反转
            c = int(('0' * (4 - len(c)) + c)[::-1], 2)#与0到9一样的的流程             
                        if c < 10:
                result.append(str(c))
            else:
                result.append(chr(c-10+ord('A')))
        else:
            result.append(i)
print(''.join(result))
            



全部评论

相关推荐

05-12 18:24
长安大学 UE4
因为是家里第一代大学生,报专业报学校都没人可以指导,只能自己看着来毕业找工作,父母只知道考公务员啊考教师啊,丝毫不考虑难度我说要去大城市打工才行,小县城对学历没有需求,开的工资都很低,两三千养活不了的结果都不同意我去大城市,觉得北上广深远,不稳定,一年到头不着家,养这么大孩子算白养了要我怎么办,不考公不考编就是死路一条呗,出去打工就是不孝呗可是考公考编也好难,考上也是小职员,到时候又变成了家里第一代体制内了,不还是样样靠自己有时候很羡慕同学,要去大城市打拼,家里都很支持去看看外面的世界也羡慕同学父母都是体制内的,考上还有所依靠家里没有办法给予帮助,简直是进入死胡同一样
Two_Shadow:你先拿到offer,路是自己走的,你真去了谁拦得住你呢,不用给自己扣帽子,我也是我家第一代大学生啊,农村人,高考96个志愿我就填50多个计算机,爸妈让我填满保底我说我不,我就学计算机,上大学了让我考研我说我不考,我就喜欢干活,现在签了offer,他们也释怀,不回家就努力提升自己,就往家里打钱,就开视频,还能怎么样呢,路是自己走的,他们只是希望你能走得好一点,但大部分父母,尤其是农村父母根本帮不了你什么,难道你就不走路了吗,希望能骂醒你,不要想太多做太少。
点赞 评论 收藏
分享
秋盈丶:后续:我在宿舍群里和大学同学分享了这事儿,我好兄弟气不过把他挂到某脉上了,10w+阅读量几百条评论,直接干成精品贴子,爽
点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务