zoukankan      html  css  js  c++  java
  • 51nod-字符串连接

    输入n个字符串s[i],你要把他们按某个顺序连接起来,使得字典序最小。

    (1 <= n <= 100)

    (每个字符串长度 <= 100)

    (字符串只包含小写字母)

    Input

    第一行一个整数n。
    接下来每行一个字符串s[i]。

    Output

    一行一个字符串表示把输入的n个字符串按某个顺序连接之后的结果

    Input示例

    6
    it
    looks
    like
    an
    easy
    problem

    Output示例

    aneasyitlikelooksproblem

    思路:用sort自定义cmp函数比较字符串字典序大小,排序后输出即可,但是有坑,我就栽了进去,QAQ

    • 最容易想到的是按字典序排序。

    • ⼀个反例是ba b,答案是bab⽽不是bba。

    • 空字符最⼤还是最⼩?(字典中是最⼩)

    • 如果认为是最⼤的话,反例是bc b,答案是bbc

    • 对于任意2个字符串,如果交换后更优,就交换。

    • 类似冒泡排序,相当于按照a + b < b + a排序。

    #include <iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    bool cmp(string a,string b)
    {
        return a+b<b+a;
    }
    int main()
    {
        int n;
        cin>>n;
        getchar();
        string *s=new string[n];
        for(int i=0;i<n;++i)
        {
            getline(cin,s[i]);
        }
        sort(s,s+n,cmp);
        for(int i=0;i<n;++i)
            cout<<s[i];
        cout<<endl;
        return 0;
    }
    
  • 相关阅读:
    Golang string slice
    Golang 切片
    Golang 数组
    Golang随机数
    如何才能轻松地分析日志?
    Linux 环境下 gzip 的加解密命令
    谁掳走了 nginx.pid 文件?
    这个 'ip' 竟然把我搞蒙圈了……
    Mysql 连接路径 url 参数解析
    C# 接口生成工具Swagger用法
  • 原文地址:https://www.cnblogs.com/aerer/p/9931039.html
Copyright © 2011-2022 走看看