PTA 1023 组个最小数 (20 分)

简介: 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。

题目


给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。


现给定数字,请编写程序输出能够组成的最小的数。


输入格式: 输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。


输出格式: 在一行中输出能够组成的最小的数。


输入样例:
2 2 0 0 0 3 0 0 1 0
结尾无空行
输出样例:
10015558
结尾无空行

解题思路

inputList = list(map(int, input().split()))
# inputList = list(map(int, "2 2 0 0 0 3 0 0 1 0".split()))
resStr = ""
# 找出最低的首位
for index, value in enumerate(inputList[1:]):
    if value != 0:
        resStr += str(index+1)
        inputList[index+1] = inputList[index+1] -1 #该位数数量减1
        break
# 从低到高输出拼接字符串
for index, value in enumerate(inputList):
    for i in range(value):
        resStr += str(index)
print(resStr)


目录
相关文章
|
5月前
1023 组个最小数 (20 分)
1023 组个最小数 (20 分)
|
5月前
|
Windows
1091 N-自守数 (15 分)
1091 N-自守数 (15 分)
|
5月前
1057 数零壹 (20 分)
1057 数零壹 (20 分)
|
6月前
|
人工智能
PTA-求一组数中大于平均值的数的和
求一组数中大于平均值的数的和
61 0
7-40 最大的数 (10 分)
7-40 最大的数 (10 分)
111 0
7-40 最大的数 (10 分)
PTA 1091 N-自守数 (15 分)
如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。
133 0
PTA 1017 A除以B (20 分)
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
102 0
|
测试技术
PTA 1021 个位数统计 (15 分)
给定一个 k 位整数 N=d k−1 ​ 10 k−1 +⋯+d 1 ​ 10 1 +d 0 ​ (0≤d i ​ ≤9, i=0,⋯,k−1, d k−1 ​
191 0
PTA 1087 有多少不同的值 (20 分)
当自然数 n 依次取 1、2、3、……、N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?
72 0
h0039. 平方数 (15 分)
h0039. 平方数 (15 分)
131 0