博客
关于我
字符串排序
阅读量:439 次
发布时间:2019-03-06

本文共 872 字,大约阅读时间需要 2 分钟。

为了解决问题,我们需要编写一个程序,按照特定规则排序输入字符串中的字符。规则包括:英文字母按顺序排列,同一英文字母的大小写保留输入顺序,非英文字母保持原位。

方法思路

  • 遍历字符串:记录每个字符及其位置。
  • 提取字母字符:将字母字符与其位置一起存储。
  • 自定义排序:根据规则对字母字符进行排序。比较时,先按小写字母顺序,相同字母按输入顺序排列。
  • 重建字符串:将排序后的字母字符放回原位置,非字母字符保持不变。
  • 解决代码

    s = input().strip()chars = list(s)letters = [(c, i) for i, c in enumerate(chars) if c.isalpha()]def compare(a, b):    if a[0].lower() == b[0].lower():        return a[1] - b[1]    return ord(a[0].lower()) - ord(b[0].lower())sorted_letters = sorted(letters, key=compare)result = []for i, c in enumerate(chars):    if c.isalpha():        result.append(sorted_letters[i][0])    else:        result.append(c)print(''.join(result))

    代码解释

  • 读取输入:使用input().strip()读取输入字符串并转换为列表。
  • 记录字符和位置:使用列表推导式遍历字符串,记录每个字符及其索引。
  • 提取字母字符:创建一个列表,存储每个字母字符及其索引。
  • 定义比较函数:比较函数compare首先比较小写字母,如果相同则比较原索引,确保按输入顺序排列。
  • 排序字母字符:使用sorted函数和自定义键进行排序。
  • 重建字符串:遍历原字符串,非字母字符保持原位,字母字符替换为排序后的结果。
  • 输出结果:将结果列表转换为字符串并输出。
  • 转载地址:http://mvjyz.baihongyu.com/

    你可能感兴趣的文章
    python 安装 easy_install 和 pip 流程
    查看>>
    python 安装echarts
    查看>>
    python 安装opencv及问题解决
    查看>>
    Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    python 实现儿童算术游戏
    查看>>
    python 实现字符串转整型
    查看>>
    Python 实现定时任务的八种方案!
    查看>>
    python 实现将RGBA 转换为RGB
    查看>>
    python字符串与url编码的转换
    查看>>
    Python 实现自动化测试 dubbo 协议接口
    查看>>
    python编程基础之十六
    查看>>
    python字符串input输入_Python input()函数:获取用户输入的字符串
    查看>>
    python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
    查看>>
    Python 对mysql数据库的操作
    查看>>
    Python 对象数据库列表
    查看>>
    Python 导入requests报错No module named requests
    查看>>
    Python 将JPEG图片批量改成jpg并删除JPEG图片
    查看>>
    python 将函数加到列表中进行调用
    查看>>