[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;

浙公网安备 33010602011771号