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