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

分类:字符串

知识点:

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

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

题目来自【牛客】

python 复制代码
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))
相关推荐
软件工程小施同学1 个月前
华为机考入门python3--(32)牛客32-密码截取
python·华为机考机试
软件工程小施同学1 个月前
华为机考入门python3--(31)牛客31-单词倒排
python·华为机考机试
软件工程小施同学1 个月前
华为机考入门python3--(28)牛客28-素数伴侣
python·华为机考机试
软件工程小施同学2 个月前
华为机考入门python3--(20)牛客20- 密码验证合格程序
华为机考机试
软件工程小施同学2 个月前
华为机考入门python3--(23)牛客23- 删除字符串中出现次数最少的字符
华为机考机试
软件工程小施同学2 个月前
华为机考入门python3--(22)牛客22- 汽水瓶
华为机考机试
软件工程小施同学2 个月前
华为机考入门python3--(21)牛客21- 简单密码
华为机考机试
软件工程小施同学2 个月前
华为机考入门python3--(19)牛客19- 简单错误记录
华为机考机试