专栏文章
题解:P14357 [CSP-J 2025] 拼数 / number
P14357题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minfgc4x
- 此快照首次捕获于
- 2025/12/02 01:32 3 个月前
- 此快照最后确认于
- 2025/12/02 01:32 3 个月前
题目分析
本题要求在给定的字符串中选定数字使得拼出的数最大。
我们可以把字符串中的数字找出来进行处理。
实现细节
首先,我们遍历整个字符串,找出其中所有的数字,代码如下:
CPPfor (int i = 0; i < s.length(); i++)
{
if (s[i] >= '0' && s[i] <= '9')
a[++t] = s[i] - 48;
}
接着,为了使拼出的数最大,我们把这些数字从大到小排序。代码如下:
CPPbool cmp(int a, int b)
{
return a > b;
}
sort(a + 1, a + t + 1, cmp);
最后,我们依次输出即可。
代码实现
CPP#include <bits/stdc++.h>
using namespace std;
string s;
int a[1000005], t;
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
cin >> s;
for (int i = 0; i < s.length(); i++)
{
if (s[i] >= '0' && s[i] <= '9')
a[++t] = s[i] - 48;
}
sort(a + 1, a + t + 1, cmp);
for (int i = 1; i <= t; i++)
cout << a[i];
cout << endl;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...