小白解题思路,详细步骤注释
s = input() # 接收输入集
u_1 = list(s.replace(' ','')) # 将字符串中空格删除并转为列表
u_1[::2] = sorted(u_1[::2]) # 保持原列表样式,对奇数位排序
u_1[1::2] = sorted(u_1[1::2]) # 保持原列表样式,偶数位排序
res = '' # 设定结果集,准备接收结果输入
def check_item(item): # 定义函数处理元素
try: # 尝试进行以下操作
int_item = int(item,16) # 将元素由16进制转化为10进制
bin_item = bin(int_item)[2:].zfill(4)[::-1] # 将10进制转化为2进制,.zfill(4)表示二进制数右对齐并在左侧以0填充,总共4位,[::-1]表示逆序
hex_item = hex(int(bin_item,2))[2:].upper() # 将逆序后的四位二进制数转化为大写16进制数,.upper()表示对转化后的结果大写,[2:]表示从转化后的16进制数的第3位开始取值(因为16进制数开头第1、2位是固定的“0x”)
'''注意:将2进制数转化位16进制时,需要先把2进制转化为10进制,再将10进制数转化为16进制'''
return hex_item # 返回转化后的大写16进制数
except ValueError: # 如果上述尝试操作有报错
return item # 则直接返回元素
for i in u_1: # 从左到右一次读取排序后的列表元素
res += check_item(i) # 对读取到的元素执行函数检查处理,将函数的返回结果添加进res中
print(res) # 打印输出

京公网安备 11010502036488号