[CSP-J 2025] 拼数 / number(民间数据)

题目大意

给一个字符串,然后用里面的数字写出最大数。

思路

这题先用个数组把所有数字提出来,再 sort 一遍输出最大数。

题外话:考试时还以为要判前导0 。。。

代码

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N];
int main()
{
    string s; cin >>s;
    int n=s.size(),cnt=0; //n:字符串长度 cnt:数字个数
    s=' '+s;   //方便从一开始
    for (int i=1;i<=n;i++){
        if (s[i]>='0' && s[i]<='9') a[++cnt]=(s[i]-'0');  //如果是数字,放a里面
    }
    sort(a+1,a+cnt+1);  //从小到大排序
    for (int i=cnt;i>=1;i--) cout <<a[i];  //逆序从大到小排序
    return 0;

posted @ 2026-03-01 15:06  头像是美食  阅读(22)  评论(0)    收藏  举报