小白解题思路,详细步骤注释

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)  # 打印输出