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

字符串合并处理

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

#第一步,合并字符串
str1,str2 = input().split()
str = str1+str2
#第二步,完成排序
str3 = ''#偶串
str4 = ''#奇串
for i in range(len(str)):
    if i % 2 == 0:
        str3 += str[i]
    else:
        str4 += str[i]
list = []
list3 = sorted(str3)
list4 = sorted(str4)
for k in range(len(str)):
    if k %2 == 0:#str的0号位放偶串的0号位
        n = int(round(k/2))#round特性,0.5向下取整为0,以此类推
        list.append(list3[n])
    else:
        list.append(list4[n])#str的1号位放奇串的0号位
new_str = ''.join(list)
#第三步,字符转化
for m in new_str:
    try:
        x = bin(int(m,16))[2::]#先把字符i,以十六进制转化为十进制,然后转化为二进制,注意二进制输出格式为Ob...所以切片2:
        #大神补充,如果二进制不足4位用0补齐,类似十进制的1写为0001.
        x = '0'*(4-len(x)) + x if len(x)<4 else x
        x = x[::-1]#倒序切片,注意切片完为字符串
        x = hex(int(x,2))[2::].upper()#先把切片二进制转十进制,然后转为十六进制后大写,注意十六进制输出格式为Ox...所以切片2:
        print(x,end='')
    except:
        print(m,end='')
        ##这里用try except主要考虑,万一字符中存在无法转化进制的字符(例如G,他不存在于十六进制),就直接输出当前字符,不做转化
        #引申 八进制输出为Oo。。。

#进制转化##悬赏#
全部评论

相关推荐

牛客48826091...:哥们胸肌挺好看
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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