题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
string = input().strip() d = {'a': 10, 'b': 11, 'c': 12, 'd': 13, 'e': 14, 'f': 15, 'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15, 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'} alphas: list[str] = [] for s in string: if s != ' ': alphas.append(s) # 插排 def insert_sort(val: list[str]): for i in range(len(val)): cur = val[i] j = i - 2 # 按奇偶下标排序,所以减2,隔一个 while j >= 0: if val[j] > cur: val[j + 2] = val[j] j -= 2 elif val[j] <= cur: val[j + 2] = cur break val[j + 2] = cur insert_sort(alphas) for i in range(len(alphas)): b = '' if alphas[i].isalpha(): if d.get(alphas[i]): b = bin(d[alphas[i]])[2:] # 去掉转换为二进制后的 ob 开头 else: continue else: b = bin(int(alphas[i]))[2:] if len(b) < 4: b = '0'*(4 - len(b)) + b rb = '0b'+b[-1:-len(alphas)-1:-1] # 翻转二进制 rb = int(rb, 2) if rb >= 10: rb = d[rb] else: rb = str(rb) alphas[i] = rb print(''.join(alphas))