题解 | #H27 字符串排序#

字符串排序

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

方法1

while True:
    try:
        s = input()
        # 提取纯字母字符
        a = ""
        for i in s:
            # 如果字符是字母,则添加到字符串a中
            if i.isalpha():
                a += i

        # 对每个字母应用str.upper方法,并根据返回的大写值来排序,返回排序后的字母列表。
        # 由于str.upper会返回一个新的字符串,不会修改原始字符串,这样就能保留原始字符串的大小写格式。
        b = sorted(a, key=str.upper)

        # 初始化排序后的结果字符串
        d = ""
        # 初始化索引,用于跟踪列表b中的位置
        index = 0

        # 遍历原始字符串s
        for i in range(len(s)):
            # 如果当前位置的字符是字母
            if s[i].isalpha():
                # 将排序后的字母添加到结果字符串d
                d += b[index]
                # 移动到排序后列表的下一个字母
                index += 1
            else:
                # 如果不是字母,则直接添加到结果字符串d
                d += s[i]
        print(d)
    except:
        break

方法2

while True:
    try:
        s = input()

        # 创建一个列表,用于存储最终排序后的字符
        sorted_chars = sorted([c for c in s if c.isalpha()], key=lambda x: x.lower())

        # 将其他字符按照原位置插入到排序后的列表中
        for i, c in enumerate(s):
            if not c.isalpha():
                sorted_chars.insert(i, c)
        print("".join(sorted_chars))

    except:
        break

【牛客站内】华为机试题解 文章被收录于专栏

【牛客站内】 分享个人刷题的思路和解法

全部评论

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务