CUC-SUMMER-5-L

L - The Smallest String Concatenation
CodeForces - 632C

You're given a list of n strings a1, a2, ..., an. You'd like to concatenate them together in some order such that the resulting string would be lexicographically smallest.

Given the list of strings, output the lexicographically smallest concatenation.

Input
The first line contains integer n — the number of strings (1 ≤ n ≤ 5·104).

Each of the next n lines contains one string ai (1 ≤ |ai| ≤ 50) consisting of only lowercase English letters. The sum of string lengths will not exceed 5·104.

Output
Print the only string a — the lexicographically smallest string concatenation.

Example

Input
4
abba
abacaba
bcd
er

Output
abacabaabbabcder

Input
5
x
xx
xxa
xxaa
xxaaa

Output
xxaaaxxaaxxaxxx

Input
3
c
cb
cba

Output
cbacbc


题意:对给定字符串排序,使排序后的字典序最小

解法:自定义sort函数的比较函数cmp,对字符串进行排序,然后依次输出。比较函数即比较两个字符串谁放在前面字典序小,所以比较a+b和b+a

代码:

#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
string n[50005];
bool cmp(string a,string b)
{
    return a+b<b+a;
}
int main()
{
    int num;
    cin>>num;
    for(int i=0;i<num;i++)
        cin>>n[i];
    sort(n,n+num,cmp);
    for(int i=0;i<num;i++)
        cout<<n[i];
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • 中午休息 梦到买饭时被人杀客 愤然摔筷子拒绝付款 然后被人暴打 一个高大壮汉脱鞋踩脸 拼命拿手阻挡 并求饶付钱 深...
    191c4bba6e91阅读 371评论 0 0
  • (记) 这个月,我刚满23岁,也做了最不愿的决定,所以觉得有必要写点什么东西,以此来祭奠这23年的记忆
    Xiang_你说阅读 233评论 0 1
  • 昨天看了一篇文章。一个培训班老师的。文章中提到。父母教育孩子。四十多岁的人,之所以。孩子管理的一团糟。主要是因为?...
    刘言刚_北京阅读 312评论 0 2
  • grid网格 13x13 每个网格: 候选框(anchor)= 5 每个候选框: (centerx,cent...
    Wangcy阅读 714评论 0 0