python的
a = input().split(' ') b = list(a[0] + a[1])#第一步完成 index = 0 jishu = [] oushu = [] while b:#字符串拆分 jishu.append(b.pop(0)) if b: oushu.append(b.pop(0)) jishu.sort(key = lambda x:ord(x),reverse= False)#字符串排序 oushu.sort(key = lambda x:ord(x),reverse= False) while jishu or oushu:#字符串合并,第二步完成 b.append(jishu.pop(0)) if oushu: b.append(oushu.pop(0)) result = [] for i in b: if ord('0')<=ord(i)<=ord('9'):#0到9 c = bin(int(i))[2::]#取2进制,删除掉开头的0b c = int(('0' * (4 - len(c)) + c)[::-1],2)#二进制补全同时反转,再用int(x,2)转换为10进制 if c < 10:#假如说小于10,直接输出数字字符 result.append(str(c)) else:#如果大于10,要输出A到F,大写字母,采用ASCII码直接生成 result.append(chr(c-10+ord('A'))) else: if ord('A')<= ord(i.upper())<=ord('F'):#A到F,直接大写确认 i = i.upper() c = bin(ord(i)-ord('A')+10)[2::]#通过ASCII码算出对应16进制,然后转换为二进制反转 c = int(('0' * (4 - len(c)) + c)[::-1], 2)#与0到9一样的的流程 if c < 10: result.append(str(c)) else: result.append(chr(c-10+ord('A'))) else: result.append(i) print(''.join(result))