對於乙個給定的字串陣列,請找到一種拼接順序,使所有小字串拼接成的大字串是所有可能的拼接中字典序最小的。
給定乙個字串陣列strs,同時給定它的大小,請返回拼接成的串。
測試樣例:
[「abc」,」de」],2
「abcde」
定義比較函式st
r1+s
tr2<=st
r2+s
tr1 ,然後自定義快排。
class
prior:
defmycmp
(self, str1, str2):
return str1 + str2 >= str2 + str1
defpartition
(self, strs, begin, end):
tmp = strs[begin]
while begin < end:
while begin < end and self.mycmp(strs[end], tmp):
end -= 1
if begin < end:
strs[begin] = strs[end]
while begin < end and self.mycmp(tmp, strs[begin]):
begin += 1
if begin < end:
strs[end] = strs[begin]
strs[begin] = tmp
return begin
defsort
(self, strs, begin, end):
if begin < end:
parti = self.partition(strs, begin, end)
self.sort(strs, begin, parti)
self.sort(strs, parti + 1, end)
deffindsmallest
(self, strs, n):
# write code here
self.sort(strs, 0, n - 1)
return
''.join(strs)
字串拼接最小字典序
對於乙個給定的字串陣列,請找到一種拼接順序,使所有小字串拼接成的大字串是所有可能的拼接中字典序最小的。給定乙個字串陣列 strs,同時給定它的大小,請返回拼接成的串。貪心策略1 直接字串排序最後拼接起來 b ba 排序的結果就是 b ba 直接連線是bba,但是實際上是bab更小 貪心策略2 定義乙...
拼接最小字典序字串 (python)
題目 給定乙個字串型別的陣列strs,請找到一種拼接順序,使得將所有的字串拼接起來組成的大寫字串是所有可能性中字典序最小的,返回這個大寫字串。如 strs abc de 返回 abcde 解 假設有兩個字串a,b,a和b拼接起來的字串表示為a.b。如果a.b的字典序小於b.a,就把字串a放在前面,否...
PHP 演算法 拼接最小字典序的實現
拼接最小字典序 給定乙個字串型別的陣列strs,請找到一種拼接順序,使得將所有字串拼接起來組成的大字串是所有可能性中字典順序最小的並放回這個大字串。思路 1.字典序,12345這五個數,按不同的順序排列,所有的排列中最前面的是12345,最後面的是 54321。2.使用比較函式usort arr,c...