【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()函数的用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Satisfying

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

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

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

打赏作者

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

抵扣说明:

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

余额充值