牛客——拼数

题目:

链接: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个正整数。

输出描述:

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

输入

3
13 312 343

输出

34331213

my code:

#include<iostream>
#include<string>
using namespace std;
bool compare(string a,string b){
    if(a+b>=b+a)
        return false;
    return true;
}
int main()
{
    int n;
    cin>>n;
    string a[20],temp;
    for(int k=0;k<n;k++)
        cin>>a[k];
    for(int i=0;i<n-1;i++){
        for(int j=n-1;j>i;j--){
            if(compare(a[j-1],a[j])){
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;
            }
        }
    }
    for(int k=0;k<n;k++){
        cout<<a[k];
    }
    cout<<endl;
    return 0;
}

c++中的拼接操作:

在c++中,对于string类型变量,我们可以直接用“+”或者“+=”进行字符串的连接,操作符非常方便。

用“+”风格字符串进行字符串连接时,操作符左右两边既可以都是string字符串,也可以是一个string字符串和一个C风格的字符串,还可以是一个string字符串和一个char字符。

而用“+=”风格字符串进行字符串连接时,操作符右边既可以是一个string字符串,也可以是一个C风格字符串或一个char字符。

上述两种方法:左边必须是string字符串。

C++中的string:

在C++中提供了一个型的内建数据类型string,该数据类型可以替代C语言中char数组。

与C风格的char型数组不同,string类型的变量结尾是没有 ’\0’ 的。

我们可以通过s变量来调用length函数,从而返回s变量的长度。

转换函数c_str,该函数将string类型的变量转换为一个const的字符串数组的指针。

在C++中,在输入输出方面,我们可以像对待普通变量那样对待string类型变量,其输入输出仍然可以用输入输出操作符进行处理。

输入操作符是默认忽略空格的,当遇到空格时就开始存储字符串。

 在C++中提供了一个型的内建数据类型string,该数据类型可以替代C语言中char数组。需要使用string数据类型时则需要在程序中包含头文件string。string类型处理起来会比较方便,下面我们将逐一介绍该类型的功能。

 

posted @ 2022-09-06 01:46  金鳞踏雨  阅读(36)  评论(0编辑  收藏  举报  来源