題目描述:
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。
解題思路:
兩個數之間比較,看哪個數放在前面排成的數字較小。利用冒泡的方法,將陣列排序
解答:
# -*- coding:utf-8 -*-
class solution:
def printminnumber(self, numbers):
# write code here
str_num = map(str, numbers)
slen = len(str_num)
for i in range(slen):
for j in range(i,slen):
if not self.compare(str_num[i], str_num[j]):
str_num[i], str_num[j] = str_num[j], str_num[i]
num = ''.join(str_num)
return num
def compare(self, stra, strb):
head = stra+strb
back = strb+stra
lessa = true
for i in range(len(head)):
if head[i] < back[i]:
break
if head[i] > back[i]:
lessa = false
break
return lessa
劍指Offer 13剪繩子
public static int cuttingrope int n return max.remainder biginteger.valueof 1000000007 intvalue public static biginteger cutting int n,int m 不會有人比我瘋狂了...
劍指offer 把陣列排成最小的數
華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 5 題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。解析 比大小即可,不過比的時候是從從左往右比。注意到字母長度有...
劍指offer 把陣列排成最小的數
輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。分析 將int型的陣列轉化為string型的陣列,再將string型的陣列排序,排序規則依據比較兩個string變數相加後的大小 注意這個cmp...