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

字符串合并处理

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())))#调用自定义的子函数,打印输出处理好的字符

#华为机试#
全部评论

相关推荐

头像
2025-12-27 13:01
三峡大学 C++
点赞 评论 收藏
分享
2025-12-06 01:10
已编辑
哈尔滨工程大学 Java
一面问的真细,二面不知为啥变双机位。9.29快手主站平时怎么学习&nbsp;AI&nbsp;的,国内外知名大模型,实习公司都用的什么大模型,怎么评估效果的java池化思想,线程池构造方法的核心参数,线程池中阻塞队列注意事项,submit方法参数和执行逻辑,shutdown和shutdownnow,核心线程允许过期吗threadlocal底层,为什么key是弱引用,key回收了再get或者set这个value会怎样aqs,如何保证公平性java代理java堆划分,新生代还有别的晋升老年代的情况吗,什么时候触发gc,gc失败抛什么异常,如何排查oom,导出dump命令redis数据结构,哪个底层是跳表,和其他数据结构对比布隆过滤器会出现大key问题吗,你咋实现的布隆过滤器你怎么实现redis分布式锁,可重入,续期聚簇索引非聚簇索引select语句会加锁吗,怎么实现的不加锁undolog&nbsp;redolog&nbsp;binlog怎么能让select加锁,update这个范围加的什么锁,update一条呢手撕简单01背包,接雨水10.10快手主站意图识别用的哪个大模型,走到意图和rag的比例,faq是点击的吗自然语言怎么识别的gap一年干啥了,转正怎么样没跟组里提意向吗,研究生研究方向是传统算法吗,会大模型微调吗注册场景为什么用布隆过滤器,原理分布式锁底层的key怎么拼的,value里是什么redis持久化zset底层mysql索引结构,一个表三个字段有主键唯一索引和没索引的字段会有几个b+树,聚簇索引非聚簇索引存的啥无手撕
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务