题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
str1, str2 = input().split() str3 = str1 + str2 # 拼接为一个字符串 # 把字符串变为列表 ls = list(str3) n = len(ls) # 按下标升序排序 for i in range(0, n, 2): # 偶数位 for j in range(i, n, 2): # 冒泡排序 if ls[i] > ls[j]: # 把小的换到左边 ls[i], ls[j] = ls[j], ls[i] for i in range(1, n, 2): # 奇数位 for j in range(i, n, 2): # 冒泡排序 if ls[i] > ls[j]: # 把小的换到左边 ls[i], ls[j] = ls[j], ls[i] # 转换字符 dict1 = { "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15, "a": 10, "b": 11, "c": 12, "d": 13, "e": 14, "f": 15, } for i in range(n): if ls[i] >= "0" and ls[i] <= "9": ls[i] = format(int(ls[i]), "04b") # 转为二进制 format函数的返回值是字符串 # 四位二进制翻转 ls[i] = ls[i][::-1] # 翻转后的二进制字符串转十进制、再转十六进制 ls[i] = hex(int(ls[i], 2)).upper()[2:] elif ls[i] in dict1: ls[i] = dict1[ls[i]] ls[i] = format(int(ls[i]), "04b") # 转为二进制 # 四位二进制翻转 ls[i] = ls[i][::-1] # 翻转后的二进制字符串转十进制、再转十六进制 ls[i] = hex(int(ls[i], 2)).upper()[2:] else: pass print("".join(ls))