码迷,mamicode.com
首页 > 其他好文 > 详细

随手练——拼接最小字典序

时间:2019-02-08 11:46:07      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:ios   get   for   vector   turn   clu   策略   using   end   

没有找到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];
    }
}

 

随手练——拼接最小字典序

标签:ios   get   for   vector   turn   clu   策略   using   end   

原文地址:https://www.cnblogs.com/czc1999/p/10355969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!