题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

s = input()
res,alph = '',[]

#记录字符串中的字母的值和索引,便于后续排序
for k,v in enumerate(s):
    if 'a' <= v <= 'z' or 'A' <= v <= 'Z':
        alph.append((k,v))

#双重排序,先按照字典序排序,在按照输入位置排序
alph.sort(key=lambda x:(x[1].lower(),k))

#i用来标记应该在第i个位置添加对应排序好的字母
i = 0
for c in s:
    if 'a' <= c <= 'z' or 'A' <= c <= 'Z':
        res += alph[i][1]
        i += 1
    else:
        res += c
print(res)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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