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

字符串合并处理

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

# 处理字符串排序问题
def stsort(strings:str):
    oddlst, evenlst = [], []
    result = ''
    for i, string in enumerate(strings):
        if (i+1) % 2 == 1:
            oddlst.append(string)
        else:
            evenlst.append(string)
    oddlst.sort(key=lambda x:ord(x))
    evenlst.sort(key=lambda x:ord(x))
    if (len(oddlst) == len(evenlst)):
        for i in range(len(evenlst)):
            result += oddlst[i] + evenlst[i]
    else:
        for i in range(len(evenlst)):
            result += oddlst[i] + evenlst[i]
        result += oddlst[-1]
    return result

# 处理字符串的转换
def change(strings):
    result = ''
    for string in strings:
        new = string
        if string.isdigit() or 65 <= ord(string.upper()) <=70:
            if string.isdigit():
                new = str(bin(int(string))).replace('0b', '').rjust(4, '0')[::-1]
                new = '0b' + new
                new = int(new, 2)
            else:
                new = str(bin(ord(string.upper())-55)).replace('0b', '').rjust(4, '0')[::-1]
                new = '0b' + new
                new = int(new, 2)
            if new < 10:
                new = str(new)
            else:
                new = str(chr(new + 55))
        result += new
    return result
        

# 接收 输入的参数
while True:
    try:
        strings = input().strip().replace(' ', '')
        strings = stsort(strings)
        result = change(strings)
        print(result)
    except:
        break

全部评论

相关推荐

Tom哥981:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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