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

字符串合并处理

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

'''
构建字符串拼接排序子函数sort_list()与字符串转换子函数tran(),
打印输出字符串转换子函数处理完字符串拼接排序子函数返回值的返回值。
'''

def sort_list(string):#字符串拼接排序子函数
    a = string.split()
    s = a[0] + a[1]#字符串输入字符串分割后,直接拼接

    odd = []#存储奇数位字符的数组
    even = []#存储偶数位字符的数组
    for i in range(len(s)):#将拼接后的字符串中的字符,按奇偶位分别保存到相对应数组
        if i%2 == 0:#如果是奇数位,则保存到存储奇数位字符的数组odd
            even.append(s[i])
        else:
            odd.append(s[i])
        
    odd.sort()#对存储奇、偶位字符的数组进行排序
    even.sort()
    
    s1 = ''#要返回的字处理后的字符串
    for i in range(len(s)):
        if i%2 == 0:#如果是偶数位,则拼接排序后的偶数位的字符
            s1 += even.pop(0)
        else:
            s1 += odd.pop(0)
    
    return s1

def tran(string):#字符串转换子函数,注意多次转换过程中,需要加进制前缀字符,以及利用'0'字符填充满足位长
    s = ''

    for i in string:
        if i.lower() >= 'a' and i.lower() <= 'f' or i >= '0' and i <= '9':#如果当前字符是需要被处理的字符
            s += str(hex(eval('0b'+str(bin(eval('0x'+i)))[2:].zfill(4)[::-1])))[2:].upper()
        else:#如果不是需要被处理的字符,则直接在后面拼接
            s += i
    
    return s#返回转换处理完成后的字符串

print(tran(sort_list(input())))#调用自定义的子函数,打印输出处理好的字符

#华为机试#
全部评论

相关推荐

04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务