题解 | #字符串合并处理#

字符串合并处理

http://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

大坑是存在左侧数据会比右侧多一个的情况,故不能用zip函数打包两个排序序列遍历,在这里磨蹭了好久

def contact_str(str1,str2):
    return str1 + str2

def sort_str(strings):
    result = []
    arr1 = [] #奇数索引序列
    arr2 = [] #偶数索引序列
    for index in range(len(strings)):
        if index % 2 == 0:
            arr1.append(strings[index])
        else:
            arr2.append(strings[index])
    arr1, arr2 = sorted(arr1), sorted(arr2)
    p,q = 0,0
    for i in range(len(strings)):
        if i % 2 == 0:
            result.append(arr1[p])
            p += 1
        else:
            result.append(arr2[q])
            q += 1
    return result

def transfer_string(strings):
    result = ''
    for case in strings:
        if case in '0123456789abcdefABCDEF':
            result += transfer(case).upper()
        else:
            result += case
    return result


def transfer(hex_num):
    hex_num = int('0x' + hex_num, 16)  # 16转10
    hex_num = bin(hex_num)  # 10转2
    hex_num = hex_num[:2] + hex_num[2:].rjust(4,'0') #补0
    hex_num = hex_num[:2] + ''.join([i for i in reversed(hex_num[2:])]) #逆序
    hex_num = int(hex_num, 2)
    return hex(hex_num)[2:]

while True:
    try:
        str1, str2 = input().split()
        strings = contact_str(str1, str2)
        result = sort_str(strings)
        print(transfer_string(result))
    except EOFError: break
全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
CrazyBucket:我今天下午也做梦在招聘会上面试一家小厂,给自己气笑了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务