随手练——拼接最小字典序
Posted czc1999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随手练——拼接最小字典序相关的知识,希望对你有一定的参考价值。
没有找到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]; } }
以上是关于随手练——拼接最小字典序的主要内容,如果未能解决你的问题,请参考以下文章