牛客網PAT乙級(Basic Level)真題-組個最小數 (20)

組個最小數 (20)

時間限制 1000 ms 內存限制 32768 KB 代碼長度限制 100 KB 判斷程序 Standard (來自  小小)

題目描述

給定數字0-9各若干個。你能夠以任意順序排列這些數字,但必須所有使用。目標是使得最後獲得的數儘量小(注意0不能作首位)。例如:

給定兩個0,兩個1,三個5,一個8,咱們獲得的最小的數就是10015558。



現給定數字,請編寫程序輸出可以組成的最小的數。

輸入描述:

每一個輸入包含1個測試用例。每一個測試用例在一行中給出10個非負整數,順序表示咱們擁有數字0、數字一、……數字9的個數。整數間用一個空

格分隔。10個數字的總個數不超過50,且至少擁有1個非0的數字。


輸出描述:

在一行中輸出可以組成的最小的數。

輸入例子:

2 2 0 0 0 3 0 0 1 0

輸出例子:

10015558







第一個方法:
from itertools import combinations, permutations

pat = input(":").split()
list1 = list(permutations(pat))
list2 = []
for i in list1:
    #print(i)
    if i[0] == "0":
        pass
    else:
        num = "".join(i)
        list2.append(num)
print(sorted(list2)[0])

  用這個方法理論上是能夠實現的,就是內存超限了。python

 

 

 第二個方法:app

相關文章
相關標籤/搜索