大厂笔试真题:给定一个字符串,字符串中存在若干个单词,并且每个单词用空格隔开,在每个单词中嵌入代表单词位置的数字,返回排序后的字符串

问题:

给定一个字符串,字符串中存在若干个单词,并且每个单词用空格隔开,在每个单词中嵌入代表单词位置的数字,返回排序后的字符串

案例:

输入:"Che2ng Tolng Xing4 3Lv"
输出:"Tong Cheng Lv Xing'
输入“Fu2 La7i! Ben1 S3han Xiang5 H4ai W6ei 
输出:"Ben Fu Shan Hai Xiang Wei Lai!!

实现代码

def custom_sort(s):
    # 以空格分割字符串
    words = s.split()
    # 创建一个字典,用于存储数字和对应的单词
    word_dict = {}

    for word in words:
        # 初始化数字和值
        num = ""
        val = ""
        # 标志位,用于判断是否遇到数字
        is_digit = False

        for char in word:
            if char.isdigit():
                num += char
                is_digit = True
            else:
                val += char
        # 如果遇到数字,则将数字和对应的单词存入字典
        if is_digit:
            word_dict[int(num)] = val

    # 根据键的大小排序字典
    sorted_dict = dict(sorted(word_dict.items()))

    # 输出排序后的单词
    result = " ".join(sorted_dict.values())
    return result


# 测试
input_str = "Fu2 La7i! Ben1 S3han Xiang5 H4ai W6ei"
output_str = custom_sort(input_str)
print(output_str)

输出:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SQingL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值