【华为OD机试】组成最大数 (C++ Python Java)2023 B卷

题目描述

小组中每位都有一张卡片,卡片上是6位内的正整数,

将卡片连起来可以组成多种数字,计算组成的最大数字。

输入描述

“,”号分割的多个正整数字符串,不需要考虑非数字异常情况,

小组最多25个人。

输出描述

最大的数字字符串

用例1

输入

22,221

输出

22221

说明

用例2

输入

4589,101,41425,9999

输出

9999458941425101

说明

解题思路

1.将输入按逗号分隔,存入字符串数组中

2.对字符串数组进行排序,按照两字符串组合起来得到较大字典序字符串的规则排序

考点

自定义排序

代码



import functools
def cmp(a,b):
    return int(b+a)-int(a+b)

vec=input().split(',')
vec.sort(key=functools.cmp_to_key(cmp))

for i in vec:
    print(i,end="")

 

你可能感兴趣的:(华为od机试2023B卷,算法,数据结构,华为od,c++,python)