对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。
给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。
测试样例:
["abc","de"],2
"abcde"
上述问题主要考察如何实现对字符串进行排序。只不过排序的规则要注意。排序绝不是两两字符串进行比较。比如“b”“ba”,如果只是两两字符串单纯进行比较的话,结果应该是“bba”,但实际结果应该是“bab”,因此比较的标准应当是对相邻两字符串进行求和后再比较。
class Prior {
public:
string findSmallest(vector<string> strs, int n) {
// write code here
int i,j;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
string s1=strs[i];
string s2=strs[j];
if((s2+s1)<(s1+s2))
{
swap(strs[j],strs[i]);
}
}
string res;
for(int i=0;i<n;i++)
{
res+=strs[i];
}
return res;
}
};