隨手練——拼接最小字典序
阿新 • • 發佈:2019-02-08
names () out getline code spa ++ emp 代碼
沒有找到OJ題目。
第一眼想到的一般都是按字典序從頭到尾依次。
b,ba按這個思想排出來,是bba,但其實最小的是bab,就要改一下比較策略了,改成拼接之後,比較誰小。
int cmp(string s1,string s2) { return s1 + s2 < s2 + s1 ? 1 : 0; }
完成代碼:
#include <iostream> #include <string> #include <algorithm> #include <vector> using namespace std; int cmp(strings1,string s2) { return s1 + s2 < s2 + s1 ? 1 : 0; } int main() { vector<string>v; string s; while (getline(cin,s)) { if (s.empty())break; v.push_back(s); } sort(v.begin(), v.end(),cmp); for (int i = 0; i < v.size(); i++) { cout << v[i]; } }
隨手練——拼接最小字典序