华为机考入门python3--(26)牛客26-字符串排序

华为机考入门python3--(26)牛客26-字符串排序

码农世界 2024-05-29 前端 106 次浏览 0个评论

分类:字符串

知识点:

  1. 字符串是否仅由字母构成    my_str.isalpha()

  2. 字母列表按小写排序    letters.sort(key=lambda x: x.lower())

题目来自【牛客】

def custom_sort(input_str):
    letters = []
    non_letters = []
    for char in input_str:
        if char.isalpha():
            letters.append(char)
        else:
            non_letters.append(char)
    # lambda x: x.lower() 是一个匿名函数,它接受参数 x(这里代表列表中的每个字母)并返回一个小写形式的 x。
    # 因此,通过传递 key=lambda x: x.lower(),可以确保在排序时不区分字母大小写。
    letters.sort(key=lambda x: x.lower())
    # 新的字符串
    result = ''
    for char in input_str:
        # 如果是字符则从已排序列表中取出第一个
        if char.isalpha():
            result += letters.pop(0)
        else:
            result += non_letters.pop(0)
            
    return result
# input_str = "Type"
# print(custom_sort(input_str))  # 输出:'epTy'
# input_str = "BabA"
# print(custom_sort(input_str))  # 输出:'aABb'
# input_str = "By?e"
# print(custom_sort(input_str))  # 输出:'Be?y'
input_str = input().strip()
print(custom_sort(input_str))

 

转载请注明来自码农世界,本文标题:《华为机考入门python3--(26)牛客26-字符串排序》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,106人围观)参与讨论

还没有评论,来说两句吧...

Top