劍指offer13 把陣列排成最小的數

2021-08-21 15:47:55 字數 845 閱讀 7572

題目描述:

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為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...