题解 | 字符串合并处理
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, 在题干中并没有说明
查看29道真题和解析