题解 | 字符串合并处理
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, 在题干中并没有说明