其他分享
首页 > 其他分享> > 牛客华为机试HJ26

牛客华为机试HJ26

作者:互联网

原题传送门

1. 问题描述

2. Solution

1、思路
把所有的字母都取出来l,存到letters中,对letters按大写字母排序(或小写字母),遍历原始字符串s,工作变量为c,若c为字母则从排序后的letters中取出下一个字符添加到结果列表res中,不然把c添加到结果列表中。
2、实现

import sys

def solve(s):
    res = []
    letters = [c for c in s if c.isalpha()]
    letters.sort(key=lambda x: x.upper())
    let_idx = 0
    for i in range(len(s)):
        if s[i].isalpha():
            res.append(letters[let_idx])
            let_idx += 1
        else:
            res.append(s[i])
    print("".join(res))

for line in sys.stdin:
    s = line.strip()
    solve(s)

标签:letters,idx,res,sys,牛客,let,append,机试,HJ26
来源: https://www.cnblogs.com/junstat/p/16163642.html