• 牛客网在线编程题——数串(1)


    开始记录刷牛客网的在线编程题,使用语言为C++,一共8342道题,监督自己坚持刷下去。。。

    说明:如果题目答案不是自己的原创,我会说明代码来源。

    题目描述

    设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
    如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
    如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。

    输入描述:

    有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。

    输出描述:

    每组数据输出一个表示最大的整数。
    示例1

    输入

    2
    12 123
    4
    7 13 4 246
    

    输出

    12312
    7424613

    参考代码地址:https://www.nowcoder.com/questionTerminal/a6a656249f404eb498d16b2f8eaa2c60
    答案代码:
    #include <string>
    #include <algorithm>
    #include <vector>
    #include <iostream>
    using namespace std;
    bool compare(string str1, string str2){
        return (str1+str2)>(str2+str1);
    }
    int main() {
        int n;
        cin >> n;
        vector<string> sArray;
        for (int i=0;i<n;i++) {
            string temp;
            cin >> temp;
            sArray.push_back(temp);
        }
        sort(sArray.begin(), sArray.end(), compare);
        for (int i=0;i<n;i++) {
            cout << sArray[i];
        }
        cout<<endl;
        return 0;
    }

    值得学习的点:1、不定长数组,使用vector;

           2、简单排序工作可使用<algorithm>头文件;

             3、整数的拼接和比较可以转化为字符串的拼接和比较,比较的巧妙。

  • 相关阅读:
    HTML5-拖拽
    POJ1182食物链(并查集)
    欧拉函数之HDU1286找新朋友
    Another kind of Fibonacce(矩阵快速幂,HDU3306)
    我的第一道java_A+B
    bestcoder#33 1002 快速幂取余+模拟乘,组合数学
    快速幂模版
    bestcoder#33 1001 高精度模拟
    poj2446_二分图
    poj3984_bfs+回溯路径
  • 原文地址:https://www.cnblogs.com/lipanDL/p/10007030.html
Copyright © 2020-2023  润新知