专栏文章

题解 P14357

P14357题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minfr3jd
此快照首次捕获于
2025/12/02 01:41
3 个月前
此快照最后确认于
2025/12/02 01:41
3 个月前
查看原文

题解 P14357

题目大意

给定一个字符串 ss ,从中选择几个数字,让它们组合的新数最大

具体解法

根据小学学的知识我们可以知道要想使得由 1,2,31,2,3 组成的数字最大,应该从大到小从高到低把它们填入数中即可做到最大,即 321321
考虑到把所有的数存进一个数组 aa ,把数组 aa 进行从大到小的排序,然后依次输出
实现代码:
CPP
#include <bits/stdc++.h>
using namespace std;
int main(){
    int arr[1000000];
    int cnt=0;
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]>='0'&&s[i]<='9') arr[cnt++]=s[i]-'0';
    }
    sort(arr,arr+cnt,greater<int>());
    for(int i=0;i<cnt;i++) cout<<arr[i];
}

小提示:

如果待排序的数不是 intint 类型的,那么在 greater<int>()greater<int>() 中就要把 intint 替换成其他类型了
管理员过一下吧~球球了qwq ~

评论

0 条评论,欢迎与作者交流。

正在加载评论...