题目中有几个没交代清楚的:
1.只用处理0-9和a-f 的字符,除此之外不用处理直接添加
2.如果转换为2进制后不够4位,需要末尾补零。
处理过程:
1.合并两字符串
2.按奇,偶位分别排序
3.再合并字符串
4.处理转换并返回
    4.1为节省时间0不用转
    4.2  16进制转2进制并反转
    4.3  不够4位要末尾补零
    4.4 再转换回去
    4.5 拼接

def translate(org_str):
    trans_str = ''
    append = '0000'
    for i in org_str:
        #优化,为零的话不用处理
        if i == '0' : 
            trans_str += i
            continue
        #只用转换0-9和a-f的字符
        if i.isdigit() or (i.isalpha() and i.upper()<'G'):
            #16进制转2进制并反转字符
            trch = str(bin(int(i,16)))[:1:-1]
            #不够4位要补零
            if len(trch)<4 :
                trch += append[:4-len(trch)]
            #2进制转16进制并大写
            trans_str += str(hex(int(trch,2)))[2::].upper()
        else :
            trans_str += i
    return trans_str

while True:
    try:
        #获取字符串
        string = "".join(input().split())
        #按奇数位和偶数位分开字符串并排序
        a = sorted(string[::2])
        b = sorted(string[1::2])
        org_str = ''
        i = 0
        #合并字符串,只会有a串长于b串的情况,或者两串长度相等
        for i in range(len(a)):
            if i >= len(b):
                 org_str += a[i]
                 break
            else :
                org_str += a[i]+b[i]
                i+=1
        print(translate(org_str))
    except:
        break