题解 | 字符串合并处理

import sys

def transfer(c:str) -> str:
    valid_hexes = "0123456789abcdefABCDEF"
    if c not in valid_hexes:
        return c
    bin_str = bin(int(c, 16))[2:].zfill(4)
    hex_str = hex(int('0b' + bin_str[::-1], 2))[2:].upper()
    return hex_str


raw_input = []
for i,line in enumerate(sys.stdin):
    raw_input.append(line.strip())
    if i == 1:
        break

s, t = raw_input[0].split(' ')
u = s + t
odd_u = [u[i] for i in range(0, len(u), 2)]
even_u = [u[i] for i in range(1, len(u), 2)]
odd_u = sorted(odd_u, key=lambda x: ord(x))
even_u = sorted(even_u, key=lambda x: ord(x))
u_prime = ''
for o, e in zip(odd_u, even_u):
    u_prime += o + e
if len(odd_u) > len(even_u):
    u_prime += odd_u[-1]
# print(u_prime)
print(''.join(transfer(c) for c in u_prime))

需要注意的是, 输入中可能存在非16进制的chr, 在题干中并没有说明

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-04 09:21
已编辑
Java
推拿大师:这是hr发的钓鱼贴吗
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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