HJ30 字符串合并处理

思路:
程序不难,但题目理解有坑。

注意:对不在16进制转换范围内的字符不需要转化。如果不另外处理则报16进制转换错误。如字符G,不需要进行字符串转换,只需要保持原位置输出。

 1 n=input().split()
 2 s=n[0]+n[1]
 3 temp1=[]
 4 temp2=[]
 5 ns=''
 6 for k,i in enumerate(s):
 7     if k%2==0:#对下表为偶数字符进行排序
 8         temp1.append(i)
 9     if k%2!=0:#对下表为奇数字符进行排序
10         temp2.append(i)
11 temp1.sort()
12 temp2.sort()
13 k=0
14 for i in temp1:    #将排序后的奇偶下表字符串合并成一串
15     temp2.insert(k,i)
16     k+=2
17 #print(temp2)
18 change='0123456789ABCDEFabcdef'
19 for k,i in enumerate(temp2): 
20     if  i in change:#不再这个范围内的数不需要转化,如果转换则报16进制转换错误。
21         temp=str(bin(int(i,16))[2:])
22         if len(temp)<4:
23             temp=(4-len(temp))*'0'+temp
24         temp=temp[::-1]
25         ni=hex(int(temp,2))[2:]
26         #print(temp,ni)
27         if ni.isalpha():            
28             ns=ns+ni.upper()
29         else:
30             ns=ns+ni
31     else:
32         ns=ns+i
33 print(ns)
34             

 

posted @ 2023-05-02 19:05  Aneverforget  阅读(32)  评论(0编辑  收藏  举报