题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

n = int(input().strip()) #先处理输入
strlist = []
while n>0 :
    istr = input().strip()
    strlist.append(istr)
    n -= 1

#定义排序函数,返回是否交换顺序
def strOrder(a,b):
    la = len(a)
    lb = len(b)
    for i in range(min(la,lb)):
        if ord(a[i]) < ord(b[i]):
            return 0 #
        elif ord(a[i]) > ord(b[i]):
            return 1
        else:
            continue
    if la <= lb:
        return 0
    else:
        return 1
    
#冒泡排序
for i in range(len(strlist)-1):
    for j in range(i+1,len(strlist)):
        if strOrder(strlist[i], strlist[j]):#满足条件,则交换二者顺序
            tmp = strlist[i]
            strlist[i] = strlist[j]
            strlist[j] = tmp
for i in range(len(strlist)):
    print(strlist[i])
        

        
    
全部评论
这种题目需要把排序一起写上嘛?但是感觉sort函数更快些诶
点赞 回复 分享
发布于 2022-02-27 12:46
原来所谓的字典序排列也就是列表元素值的排序而已,写的那么高大上让人看不懂
点赞 回复 分享
发布于 2022-07-17 17:10
compare 那里 if len(str1) >= len(str2): return True else: return False ,应该不用大于等于吧,等于的是两个完全一样,不用交换
点赞 回复 分享
发布于 2023-06-26 13:14 广东

相关推荐

13 1 评论
分享
牛客网
牛客企业服务