概述
题目描述
按照指定规则对输入的字符串进行处理。
详细描述:
将输入的两个字符串合并。
对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。
对排序后的字符串进行操作,如果字符为‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符。如字符为‘4’,为0100b,则翻转后为0010b,也就是2。转换后的字符为‘2’; 如字符为‘7’,为0111b,则翻转后为1110b,也就是e。转换后的字符为大写‘E’。
举例:输入str1为"dec",str2为"fab",合并为“decfab”,分别对“dca”和“efb”进行排序,排序后为“abcedf”,转换后为“5D37BF”
注意本题含有多组样例输入
输入描述:
本题含有多组样例输入。每组样例输入两个字符串,用空格隔开。
输出描述:
输出转化后的结果。每组样例输出一行。
示例1
输入
dec fab
DKSq8qykpgKIZxiRKmQ9QkZt909PffE6Gyfc57dBx7p20D42bWJRzKqGGCzzQ4p7Z32Dsx2Cf8G2841lPuAZNb K0fHodOVFlbl220ov260TPOrmZ328d1E89OatcL88EXr622RdklXtXazO7wMoc6DEKU45eQ5VBUy2YFjgJX
hAWK8umt8F17X5IE74tTG526SEwCd9520r5NvA20H6T28YVeP5nbQ4459I9G7W qXr9OOvzq9Do5WF8M4ANEkto79IQ3tF9sPK36q2w8y4In9BR1mOm
输出
5D37BF
000080844444444444C42CA2A2626A661E1E1E1E11919959BD7D73F3FBGBGBG7J7KGKHKILJNKOKOKOMOPPPQRQRQRQVSWTXUXUYVZXZX5ZDZ3Z353DBDBB7BFFgFjFkFkgkilllmlomoopqpqprqrsttutxvxwyxyyzzzz
0084844C4242C22A2AAAAAA666EEE1E919191919999555D3B777FFFGGIHIIKINKNMOOPOQPRQTSWTWVXWYXDB7hkmmnmnoqoqqrrsttttuvwvywz
代码实现:
import string
def func():
while True:
try:
lists = input().split(' ')
#print(lists)
list1 = list(lists[0])
list1.extend(list(lists[1]))
list1[::2] = sorted(list1[::2])
list1[1::2] = sorted(list1[1::2])
#print(list1)
hex_num = ['0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', 'a', 'b',
'c', 'd', 'e', 'f',
'A', 'B', 'C', 'D',
'E', 'F']
for k,v in enumerate(list1):
if v in hex_num:
ten = int(v,16)
res = format(ten,'b').rjust(4,'0')
res = res[::-1]
res = format(int(res,2),'x')
res = str.upper(res)
list1[k] = res
print(''.join(list1))
except Exception as e:
#print(e)
break
if __name__ == '__main__':
func()
最后
以上就是生动身影为你收集整理的【机试题(实现语言:python3)】字符串合并处理-进制转换的全部内容,希望文章能够帮你解决【机试题(实现语言:python3)】字符串合并处理-进制转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复