##输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
##示例 1:
##输入: [10,2]
##输出: “102”
##示例2:
##输入: [3,30,34,5,9]
##输出: “3033459”
法一:
num = []
def str_sorted(num1):
nums = [str(i) for i in num1]
if len(nums) == 0:
#print(num)
print(''.join(num))
num.clear()
else:
for i in range(len(nums)):
if nums[i-1]+''+nums[i] < nums[i]+''+nums[i-1]:
nums[i-1],nums[i] = nums[i],nums[i-1]
res = nums.pop()
num.append(res)
str_sorted(nums)
str_sorted([3,30,34,5,9])
str_sorted([10,2])
法二:
import itertools
def minNumber(nums):
list1 = []
A = list(itertools.permutations(nums, len(nums)))
for i in range(len(A)):
A[i] = [str(i) for i in A[i]]
list1.append(''.join(A[i]))
list1.