分类:字符串、进制转换
知识点:
-
获取偶数下标的字符 even_chars = my_str[::2]
-
获取奇数下标的字符 odd_chars = my_str[1::2])
-
翻转字符串 reversed_str = my_str[::-1]
-
二进制转十进制 num = int(reversed_binary, 2)
-
十进制转十六进制 format(num, 'X')
题目来自【牛客】
def merge_strings(str1, str2):merged_str = str1 + str2 # 合并两个字符串return merged_strdef sort_string(s):even_chars = sorted(s[::2]) # 获取偶数下标的字符并排序odd_chars = sorted(s[1::2]) # 获取奇数下标的字符并排序sorted_str = "" # 初始化排序后的字符串for i in range(len(s)):if i % 2 == 0: # 如果下标是偶数sorted_str += even_chars[i // 2] # 添加排序后的偶数下标字符else: # 如果下标是奇数sorted_str += odd_chars[i // 2] # 添加排序后的奇数下标字符return sorted_strdef convert_characters(s):converted_str = ""for char in s:if char.isdigit() or 'a' <= char <= 'f' or 'A' <= char <= 'F': # 如果是需要转换的字符# 大小写a对应的16进制都是10binary_str = bin(int(char, 16))[2:].zfill(4) # 转为二进制并填充为4位# 翻转二进制字符串reversed_binary = binary_str[::-1]# 转回为大写十六进制字符converted_char = format(int(reversed_binary, 2), 'X') converted_str += converted_charelse:converted_str += char # 其他字符直接添加return converted_str# 输入
input_str = input()
str1, str2 = input_str.split()# 处理和转换
merged_string = merge_strings(str1, str2)
sorted_string = sort_string(merged_string)
converted_result = convert_characters(sorted_string)# 输出
print(converted_result)