题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
import sys
st = input().replace(' ','') #字符串拼接,去除空格
st_odd = [x for i,x in enumerate(st) if i%2==1] #奇数位字符串列表
st_odd = sorted(st_odd) #排序奇数位字符串
st_even = [x for i,x in enumerate(st) if i%2==0] #偶数维字符串列表
st_even = sorted(st_even) #排序偶数位字符串
stl = '' #初始化待拼接字符串
for i in range(len(st)):
if i%2==1:
stl += str(st_odd[int((i-1)/2)]) #拼接排序后的奇数位字符串
else:
stl += str(st_even[int(i/2)]) #拼接排序后的偶数位字符串
res = '' #初始化结果字符串
for i in range(len(stl)):
if stl[i] in '0123456789ABCDEFabcdef': #如果字符串每位在0-9a-f
r = bin(int(stl[i],16))[2:] #转入二进制,去掉开头的0b
r = '{:0>4s}'.format(r) #补齐4位,缺失补0
r = r[::-1] #反转字符串
r = hex(int(r,2))[2:] #转入16位数值,去掉开头的0h
r = r.upper() #所有字母大写
res += str(r) #拼接结果
else:
res += str(stl[i]) #如果字符不在0-9a-f中,保持原样。
print(res)

