【20190822】【校招笔试题】字符串排序_美团
作者:互联网
问题
样例输入:waimai,dache,lvyou,liren,meishi,jiehun,lvyoujingdian,jiaopei,menpiao,jiudian
样例输出:waimai,menpiao,meishi,lvyou,lvyoujingdian,liren,jiudian,jiehun,jiaopei,dache
思路及代码
# 网上找的代码,是冒泡排序思想,compare 函数写的很巧妙,可以参考。
# strs = input().split(',')
string = "waimai,dache,lvyou,liren,meishi,jiehun,lvyoujingdian,jiaopei,menpiao,jiudian"
strs = string.split(",")
def compare(s1, s2):
if not s1:
return True
if not s2:
return False
for i in range(min(len(s1), len(s2))):
# if ord(s1[i]) > ord(s2[i]):
# return True
# elif ord(s1[i]) < ord(s2[i]):
# return False
if s1[i] > s2[i]:
return True
elif s1[i] < s2[i]:
return False
return True if len(s1) < len(s2) else False
for i in range(len((strs))):
for j in range(i+1, len(strs)):
if compare(strs[j], strs[i]):
strs[i], strs[j] = strs[j], strs[i]
print(",".join(strs))
知识点
1. ord(c) 函数:c 是一个字符,返回值是一个十进制数,是 c 对应的 ASCII 码值。
2. "sep".join(seq) 的用法:
sep 是分隔符,可以为空。
seq 是要分隔的序列、列表、字符串、元组、字典等。
功能:将 seq 用 sep 分隔,组成一个新的字符串。返回值是一个字符串。
(参考:python中的join()函数的用法)
标签:return,strs,s2,美团,len,20190822,校招,ord,s1 来源: https://blog.csdn.net/weixin_40583722/article/details/100022733