字串合併處理

2021-09-19 13:42:43 字數 1015 閱讀 9054

while true:

try:

dic = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"]

s = input().replace(" ", "") #s是輸入的合併後的字串

ss = "" #ss為最終返回的字串

odd, even = "", "" # 字串的奇數子串和偶數子串

# 經過下面的迴圈,提取奇數與偶數的子串。

for i, v in enumerate(s):

if i % 2 == 0:

even += v

else:

odd += v

# 奇數與偶數部分排序

odd = "".join(sorted(odd))

even = "".join(sorted(even))

# 如果字串在0123456789abcdefabcdef範圍內,對其做變換,否則不做任何處理。

for i in range(len(even)):

if even[i] in "0123456789abcdefabcdef":

ss += dic[int(bin(dic.index(even[i].upper())).replace("0b", "").rjust(4, "0")[::-1], 2)]

else:

ss += even[i]

if len(odd) != i: #注意偶數串可能比奇數串長乙個字元,所以要做一下判斷。

if odd[i] in "0123456789abcdefabcdef":

ss += dic[int(bin(dic.index(odd[i].upper())).replace("0b", "").rjust(4, "0")[::-1], 2)]

else:

ss += odd[i]

print(ss)

except:

break

華為OJ(字串合併處理)

描述 按照指定規則對輸入的字串進行處理。詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排訓後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的16進製制的數進行b...

華為OJ 字串合併處理

字串合併處理 按照指定規則對輸入的字串進行處理。詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排訓後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的 16進製制...

華為 OJ 字串合併處理

按照指定規則對輸入的字串進行處理。詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排訓後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的16進製制的數進行bit倒...