zoukankan      html  css  js  c++  java
  • 洛谷P1012拼数(string相加)(小技巧)

    题目描述

    设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

    例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213

    又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

    输入输出格式

    输入格式:

    第一行,一个正整数n。

    第二行,n个正整数。

    输出格式:

    一个正整数,表示最大的整数

    题解

    其实本来想用char一位位比较的...

    然而忽然想起string好像可以直接相加(...)

    例如

    s1="abc";
    s2="def";
    s3=s1+s2;
    则s3为abcdef

    那么这题就更简单了...

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n; 
    string s[22];
    bool cmp(string s1,string s2);
    int main()
    {
        ios::sync_with_stdio(false);
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>s[i];
        sort(s+1,s+n+1,cmp);
        string ans;
        ans=s[1];
        for(int i=2;i<=n;i++)
            ans+=s[i];
        cout<<ans;
        return 0;
    }
    bool cmp(string s1,string s2)
    {
        return s1+s2>s2+s1;
    }
  • 相关阅读:
    十二经络容易堵塞穴位
    考研英语词汇-乱序便携版-遗忘曲线
    分享一个硬核理工类科普节目:回到2049(12月17号取消置顶)
    191129
    191130
    191128
    191127
    191126
    191125
    微信公众号自定义菜单中添加图标(转)
  • 原文地址:https://www.cnblogs.com/Alarak26/p/8505589.html
Copyright © 2011-2022 走看看