题解 | 字符串合并处理

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, 在题干中并没有说明

全部评论

相关推荐

那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 18:25
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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