收藏
难度:一般
标签:暂无标签
题目描述
在对字符串的排序中,往往具有不同的规则来判断字符串的大小先后。这里有两种比较常见的规则: 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 aelse: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)