拼接所有字符串产生字典顺序最小的大写字符串
生活随笔
收集整理的這篇文章主要介紹了
拼接所有字符串产生字典顺序最小的大写字符串
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題:給定一個(gè)字符串類型的數(shù)組strs,請(qǐng)找到一種拼接順序,使得將所有的字符串拼接起來組成的大字符串是所有可能性中字典順序最小的,并返回這個(gè)大字符串。
舉例:
? ? ? ?strs = [“abc”, “de”],可以拼接成 “abcde”,也可以拼接成 “deabc”,但前者的字典順序更小,所以返回 “abcde”
strs = [“b”, “ba”],可以拼成 “bba”,也可以拼成 “bab”,但前者的字典順序更小,所以返回 “bab”。
基本思路:
? ? ? ?有一種思路為:先把strs中的字符串按照字典順序排序,然后將串起來的結(jié)果返回。這么做是錯(cuò)誤的,例如【舉例】中的第二條,按照字典順序排應(yīng)該是b、ba,串起來的結(jié)果是bba,但是正確答案是bab。所以這個(gè)思路行不通。正確的排序方式如下:
假設(shè)兩個(gè)字符分別是a,b。a和b拼起來的字符串表示為a.b,那么如果a.b的字典順序小于b.a,就把a(bǔ)放在前面,否則把b放在前面。每?jī)蓚€(gè)字符之間都按照這個(gè)標(biāo)準(zhǔn)進(jìn)行比較,以此標(biāo)準(zhǔn)排序后,最后串起來的結(jié)果就是正確答案
def compare(strs):if strs == None or len(strs) == 0:return ""from functions import cmp_to_keystrs = sortrd(strs,cmp_to_key(lambda x,y: 1 if x+y > y+x else -1))return "".join(strs)
?
總結(jié)
以上是生活随笔為你收集整理的拼接所有字符串产生字典顺序最小的大写字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做项目的最大收益
- 下一篇: 判断两个字符串是否是变形词