思路简单:排序+比较规则:a+b < b+a 则a应该排在b的前面。
# -*- coding:utf-8 -*-
class Solution:
def PrintMinNumber(self, numbers):
# write code here
'''numbers是由数字组成的列表'''
numbers = self.sortNumbers(numbers)
return numbers
def sortNumbers(self, numbers):
numbers = [str(num) for num in numbers]
# 适用于本题的冒泡排序
for i in range(0,len(numbers)-1):
temp = i #当前最小的
for j in range(i+1,len(numbers)):
if self.isLessThan(numbers[j],numbers[temp]):
temp = j
numbers[i], numbers[temp] = numbers[temp], numbers[i]
return ''.join(numbers)
def isLessThan(self, a, b):
'''判断a是否应排在b的前面,a和b均为str'''
if a+b <= b+a:
return True
else:
return False