题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
def reserve(str: str):
return str[-1::-1]
def str2Hex2Bin2SortedHexStr(s: str):
decimalism = int(s, 16)
binary = bin(decimalism)[2:]
if len(binary) < 4:
binary = (4 - len(binary)) * "0" + binary
binary = reserve(binary)
hexStr = hex(int(binary, 2))[2:]
if hexStr.isalpha():
return hexStr.upper()
else:
return hexStr
def step1(str1: str, str2: str):
return str1 + str2
def step2(mergeStr: str):
strLength = len(mergeStr)
evenIndexStr = []
oddIndexStr = []
for i in range(strLength):
if i%2 != 0: # odd digit index
oddIndexStr.append(mergeStr[i])
else: # even digit index
evenIndexStr.append(mergeStr[i])
evenIndexStr = sorted(evenIndexStr)
oddIndexStr = sorted(oddIndexStr)
res = ""
for i in range(len(evenIndexStr)):
res += evenIndexStr[i]
try:
res += oddIndexStr[i]
except Exception as e:
# print(e)
pass
return res
def step3(sortedStr: str):
str1 = "ABCDEF"
str2 = "abcdef"
res = ""
strList = list(sortedStr)
for i in range(len(strList)):
if (strList[i] in str1) or (strList[i] in str2) or (strList[i].isdigit()):
if strList[i].isalpha():
strList[i] = strList[i].lower()
res += str2Hex2Bin2SortedHexStr(strList[i])
else:
res += strList[i]
return res
str1, str2 = map(str, input().strip().split(" "))
print(step3(step2(step1(str1, str2))))
步骤相对清晰,题目分散来做,实际不难。
查看14道真题和解析
