• C. The Smallest String Concatenation


    C. The Smallest String Concatenation
    time limit per test
    3 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    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.

    Examples
    Input
    4
    abba
    abacaba
    bcd
    er
    
    Output
    abacabaabbabcder
    
    Input
    5
    x
    xx
    xxa
    xxaa
    xxaaa
    
    Output
    xxaaaxxaaxxaxxx
    
    Input
    3
    c
    cb
    cba
    
    Output

    cbacbc

    字符串排序

    #include <bits/stdc++.h>
    using namespace std;
    
    typedef long long int llint;
    const int maxn = 5e4+100;
    string a[maxn];
    
    int cmp(const string &a, const string &b) {
    	return a + b < b + a;
    }
    
    int main() {
    	int n;
    	scanf("%d",&n);
    	for (int i = 0; i<n; i++)	cin >> a[i];
    	sort(a, a+n, cmp);
    	for (int i = 0; i<n; i++)	cout << a[i];
    	cout << endl;
    	return 0;
    }


  • 相关阅读:
    指针
    初级程序员面试不靠谱指南(七)
    初级程序员面试不靠谱指南(六)
    Hadoop 中利用 mapreduce 读写 mysql 数据
    Mapreduce的文件和hbase共同输入
    mapreduce多文件输出的两方法
    mapreduce中一个map多个输入路径
    GDB介绍
    超强的指针学习笔记
    iOS开发之Appstore篇——版本更新
  • 原文地址:https://www.cnblogs.com/Tovi/p/6194803.html
Copyright © 2020-2023  润新知