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

字符串合并处理

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

string = input().strip()

d = {'a': 10, 'b': 11, 'c': 12, 'd': 13, 'e': 14, 'f': 15, 'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15, 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'}
alphas: list[str] = []

for s in string:
    if s != ' ':
        alphas.append(s)

# 插排
def insert_sort(val: list[str]):
    for i in range(len(val)):
        cur = val[i]
        j = i - 2 # 按奇偶下标排序,所以减2,隔一个
        while j >= 0:
            if val[j] > cur:
                val[j + 2] = val[j]
                j -= 2
            elif val[j] <= cur:
                val[j + 2] = cur
                break
        val[j + 2] = cur

insert_sort(alphas)

for i in range(len(alphas)):
    b = ''
    if alphas[i].isalpha():
        if d.get(alphas[i]):
            b = bin(d[alphas[i]])[2:] # 去掉转换为二进制后的 ob 开头
        else:
            continue
    else:
        b = bin(int(alphas[i]))[2:]
    if len(b) < 4:
        b = '0'*(4 - len(b)) + b
    rb = '0b'+b[-1:-len(alphas)-1:-1] # 翻转二进制
    rb = int(rb, 2)
    if rb >= 10:
        rb = d[rb]
    else:
        rb = str(rb)
    alphas[i] = rb

print(''.join(alphas))

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务