1013.组个最小数 (20)

# 题目描述
# 给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:
# 给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。
# 现给定数字,请编写程序输出能够组成的最小的数。
# 输入描述:
# 每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空
# 格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。
# 输出描述:
# 在一行中输出能够组成的最小的数。
# 输入例子:
# 2 2 0 0 0 3 0 0 1 0
# 输出例子:
# 10015558
a = input().split()
b = ["0","1","2","3","4","5","6","7","8","9"]
c = []
for i in range(0,10):
    if int(a[i])!= 0:
        c.append(b[i]*int(a[i]))
d = "".join(c)
f = []
for e in d :
    f.append(e)
g = []
j = 0
if f[0] == "0":
    while j < len(f):
        if f[j] != "0":
            g.append(f[j])
            break
        j += 1
    f.remove(f[j])
    for k in f:
        g.append(k)
else:
    g = f
print("".join(g))

猜你喜欢

转载自blog.csdn.net/luslin/article/details/81711610