找出最大数字串

一组同学中每个人有一张卡片,卡片上有一个数字该数字不超过6位 ,输入每个卡片上的数字,求他们能组成的最大的数字串。

例如:

输入45,9,813
输出 981345

思路:

比较两个数字字符串大小,如果str1+str2 组合过后的串大于等于str2+str1,那么认为str1是大于str2的;然后进行列表的排序,越大的排在前面。

import sys

def judgeStr(str1, str2):
    sum_1 = str1 + str2
    sum_2 = str2 + str1
    if sum_1 >= sum_2:
        return True
    else:
        return False


def biggestNum(list_str):
    for i in range(len(list_str)):
        for j in range(len(list_str)):
            if j > i:
                if judgeStr(list_str[i], list_str[j]) == False:
                    list_str[i], list_str[j] = list_str[j], list_str[i]
    print(''.join(list_str))

str = sys.stdin.readline().strip()
list_str = str.split(',')
biggestNum(list_str)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值