559: 字符串排序(python)

收藏

难度:一般

标签:暂无标签

题目描述

在对字符串的排序中,往往具有不同的规则来判断字符串的大小先后。这里有两种比较常见的规则: 1. 首先按字符串长度进行排序,对长度相同的字符串,按字母顺序进行排序。如:ab, gdh, c, gaa, caa排序后的结果是:c, ab, caa, gaa, gdh 2. 直接按字母顺序排序,把长度不同的串都按相同长度处理。如:ab, gdh, c, gaa, caa排序后的结果是:ab, c, caa, gaa, gdh 你的任务是写一个程序,对于输入的字符串,按照这两种方式分别进行排序。

输入
 

只有一组测试数据,测试数据包括多行:第一行是字符串个数N,接下来的N行为字符串,字符串均为大小写字母,不需判错。见sample input

输出
 

输出为两行,按要求输出字符串排序后的结果,第一行为上面第一种方法,第二行为第二种方法。每两个字符串中以一个空格间隔开。见sample output

样例输入复制
5
ab
gdh
c
gaa
caa
样例输出复制
c ab caa gaa gdh
ab c caa gaa gdh
def f(a,b):
    if len(a)>len(b):
        return a
    else:
        return b
nums=[]
n=int(input())
for _ in range(n):
    nums.append(input())
nums.sort()
num2=sorted(nums)
# print(*nums)
for i in range(0,len(nums)):
    for j in range(0,len(nums)-i-1):
        if f(nums[j],nums[j+1])==nums[j]:
            nums[j],nums[j+1]=nums[j+1],nums[j]
print(*nums)
print(*num2)

  • 17
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,可以通过将字符串转换为列表,使用列表的sort()方法来对字符串进行排序。具体的实现方法如下: ```python s = "string" l = list(s) l.sort() s = "".join(l) ``` 以上代码将字符串"s"转换为列表"l",然后使用sort()方法对列表进行排序,最后再将排序后的列表重新转换为字符串"s"。这样就实现了字符串排序。结果为'ginrst'。 还可以使用lambda函数来实现更简洁的字符串排序方法: ```python s = "string" s = "".join((lambda x:(x.sort(),x)[1])(list(s))) ``` 以上代码使用lambda函数将列表排序后直接转换为字符串。结果同样为'ginrst'。 另外,如果要对字符串列表进行排序,可以使用列表的sort()方法。例如,对以下字符串列表进行排序: ```python list=["delphi","Delphi","python","Python","c ","C ","c","C","golang","Golang"] list.sort() #按字典顺序升序排列 print("升序:",list) list.sort(reverse=True) #按降序排列 print("降序:",list) ``` 以上代码将字符串列表按照字典顺序升序排列,并打印结果。结果为['c', 'C', 'c ', 'C ', 'delphi', 'Delphi', 'python', 'Python', 'golang', 'Golang']。然后再按照降序排列,并打印结果。结果为['delphi', 'Delphi', 'python', 'Python', 'golang', 'Golang', 'c ', 'C ', 'c', 'C']。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python字符串怎么排序](https://blog.csdn.net/hdxx2022/article/details/128051776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python3 list 排序函数详解](https://blog.csdn.net/lianshaohua/article/details/80483357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西柚与蓝莓

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

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

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

打赏作者

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

抵扣说明:

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

余额充值