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))



京公网安备 11010502036488号