最大值

标题:最大值 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
给定一组整数(非负),重排顺序后输出一个最大的整数。


#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<int> vec;
    string resultStr = "";
    int val;
    char ch;
    while(ch!='\n'){
        scanf("%d",&val);
        vec.push_back(val);
        scanf("%c",&ch);
    }

    for(int i=0;i<vec.size()-1;i++)
    {
        for(int j=i+1;j<vec.size();j++)
        {
            string str1 = to_string(vec[i]) + to_string(vec[j]);
            string str2 = to_string(vec[j]) + to_string(vec[i]);
            if(str1 < str2)
            {
                vec[i] ^= vec[j];
                vec[j] ^= vec[i];
                vec[i] ^= vec[j];
            }
        }
    }
    
    for(int i=0;i<vec.size();i++){
        resultStr += to_string(vec[i]);
    }
    cout<<resultStr;
    return 0;
}

num = input().strip().split()
res = ""
for i in range(len(num)-1):
    for j in range((i+1),len(num)):
        if int(str(num[i]) + str(num[j])) < int(str(num[j]) + str(num[i])):
            num[i], num[j] = num[j], num[i]

for i in num:
    res += str(i)

if int(res) == 0:
    res = "0"

print(res)



// 满分题解   已使用




全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务