zoukankan      html  css  js  c++  java
  • 拼数

    链接:https://ac.nowcoder.com/acm/problem/16783
    来源:牛客网

    题目描述

    设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数。
    例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
    又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

    输入描述:

    第一行,一个正整数n。
    第二行,n个正整数。

    输出描述:

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

    输入

    复制
    3
    13 312 343

    输出

    复制
    34331213

    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<cmath>
    #include<string>
    using namespace std;
    
    bool cmp(string a, string b)
    {
        return a + b > b + a;
    }
    
    int main()
    {
        string s[30];
        int n; cin >> n;
        for (int i = 1; i <= n; i++) cin >> s[i];
        sort(s + 1, s + n+1, cmp);
        for (int i = 1; i <= n; i++)
            cout << s[i];
        while (1);
    }

    解题过程:本来我想着把字符串一个一个的比较来进行排列,但是我觉得这题这样写的话会非常麻烦和愚蠢,所以我看了别人的代码,发现原来sort里的cmp比较函数还可以对字符串这样进行排序,将字符串的个个字符依次转为数字,然后对其进行比较,如果有相同的就指向下一个字符直到比出来为止,由于刚刚学c++没多久,所以对此方法不是很熟悉。另外,以后每天我都会写2-3个题目的博客,来督促自己打卡,冲冲冲

  • 相关阅读:
    [方法] 如何做产品功能设计
    js如何去除一个数组中与另一个数组中的值相同的元素
    js 导出Excel2
    js 导出Excel
    CSS3动画
    没有欲望是一种什么样的感觉
    L9-DOM高级应用
    L8-DOM操作应用
    L7-DOM基础
    L6-js定时器的应用
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/11563621.html
Copyright © 2011-2022 走看看