1. 程式人生 > >隨手練——拼接最小字典序

隨手練——拼接最小字典序

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(string
s1,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]; } }

隨手練——拼接最小字典序