拼数 (CSP-J 2025)
第一题比较容易,要注意的是读清楚题意,需要输出最大的数,直观想到在字符串中过滤数所有数字,然后使用排序,从大到小输出数字,应该就是最大的可能的数。
注意字符串长度较大,,所以数组到开到足够大。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
char s[1000005];
vector<char> nums;
int main() {
scanf("%s", s);
n = strlen(s);
for (int i = 0; i < n; i++) {
if (s[i] >= '0' && s[i] <= '9') {
nums.push_back(s[i]);
}
}
sort(nums.begin(), nums.end(), greater<char>());
for (int i = 0; i < nums.size(); i++) {
printf("%c", nums[i]);
}
printf("\n");
return 0;
}