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