拼接最小字典序 类似 [LintCode]379

来源:互联网 发布:js判断数组为空 编辑:程序博客网 时间:2024/06/06 07:16

对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。

给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。

测试样例:
["abc","de"],2
"abcde"
思路:比较s1+s2 和 s2+s1的大小,不单独比较每个字符串 

sort 中的比较函数

当你需要按照某种特定方式进行排序时,你需要给sort指定比较函数,否则程序会自动提供给你一个比较函数。
vector <int> vect;
sort(vect.begin(), vect.end());
sort(vect.begin(), vect.end(), less<int>() );//此时相当于调用
需要注意的是,这些函数不是都能适用于你的sort算法,如何选择,决定于你的应用。另外,不能直接写入仿函数的名字,而是要写其重载的()函数:less<int>()

class Prior {public:    string findSmallest(vector<string> strs, int n) {        string temp;        sort(strs.begin(), strs.end(), compare);        for(int i=0;i<n;i++){            temp += strs[i];        }        return temp;    }    static bool compare(string s1,string s2){//必须加static         return (s1+s2)<(s2+s1);    }};


 
原创粉丝点击