拼接所有的字串產生字典序最小的字串
給定乙個字串的陣列strs,請找到一種拼接順序,使得所有的字串拼接起來組成的字串是所有可能性中字典序最小的,並返回這個字串。
輸入描述:
輸入包含多行,第一行包含乙個整數n(1
≤n≤1
05
)n(1 \leq n \leq 10^5)
n(1≤n≤
105)
,代表字串陣列strs的長度,後面n行,每行乙個字串,代表strs[i](保證所有字串長度都小於10)。
輸出描述:
輸出一行,包含乙個字串,代表返回的字典序最小的字串。
示例1輸入
2
abcde
輸出abcde
示例2
輸入
2
bba
輸出bab
題解:
貪心,定義乙個比較器,排序之後在拼接起來:
若 str1+str2 <= str2+str1,則 str1 放在前面,否則放在後面。具體貪心策略證明,可見書上該部分。
**:
#include
#include
#include
#include
using
namespace std;
inline
bool
cmp(
const string &s1,
const string &s2 )
intmain
(void
)sort
(v.begin()
, v.
end(
), cmp)
;for
(auto it : v)
cout << it;
cout << endl;
return0;
}
字串拼接最小字典序
對於乙個給定的字串陣列,請找到一種拼接順序,使所有小字串拼接成的大字串是所有可能的拼接中字典序最小的。給定乙個字串陣列 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放在前面,否...
字串拼接最小字典
給定乙個字串陣列,找到一種拼接順序,使得所有小字串拼接成的大字串在所有可能的拼接中字典序最小。例如 給定strarr n 2。則有兩種拼接順序bacbd和bdbac,顯然第一種拼接的字典序要小於第二種。我們是否可以這樣認為 如果str1的字典序小於str2的字典序,那麼str1一定就放在前面,也就是...