OD统一机试:数组组成的最小数字
题目
给定一个整型数组,请从该数组中选择3
个元素组成最小数字并输出
(如果数组长度小于3
,则选择数组中所有元素来组成最小数字)。
输入
一行用半角逗号分割的字符串记录的整型数组,
0 < 数组长度 <= 100
,
0 < 整数的取值范围 <= 10000
。
输出
由3
个元素组成的最小数字,
如果数组长度小于3
,
则选择数组中所有元素来组成最小数字。
示例一
输入
21,30,62,5,31
输出
21305
说明
数组长度超过3
,需要选3
个元素组成最小数字,21305
由21
,30
,5
三个元素组成的数字,为所有组合中最小的数字
示例二
输入
5,21
输出
215
说明
数组长度小于3
, 选择所有元素来组成最小值,215
为最小值。
解题思路
- 从键盘读入一行字符串,该字符串中以逗号隔开多个数字。
- 将读入的字符串通过 “,” 分割成多个数字。
- 将这些数字从小到大排序。
- 如果有 2 个数字,就取这两个数字。否则,取前 3 个数字。
- 将这几个数字按照字典序从小到大排序。
- 将这几个数字合并成一个数字字符串,并转换为整数,输出。
核心知识点
-
利用 len 函数获取列表长度并赋值给 nums_len。
-
使用列表推导式将整型数组转换成字符串数组,并赋值给 nums_str。
-
对 nums_str 进行排序。
使用说明
参加华为 od 机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。