专栏文章

题解:P14357 [CSP-J 2025] 拼数 / number(民间数据)

P14357题解参与者 30已保存评论 41

文章操作

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

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

思路

这道题可以直接使用暴力枚举,我们先用 ss 将字符串存起来,再遍历一遍 ss,如果当前 sis_i 的 ASCII 码再字符 0 到字符 9 之间,则为数字,存入一个 aa 数组中,每次将数字位减去字符 0 再插入 aa 数组,最后排序后再倒序输出。

代码:

CPP
#include <bits/stdc++.h>
using namespace std;
string s;int a[1000005],cnt;//s 为题意需要,a为记录数组,cnt为当前到哪个序号以及 a 数组长度
int main(){
//	freopen("number.in" ,"r" ,stdin);
//	freopen("number.out","w",stdout);
	cin >> s;
	for (int i = 0;i < s.size();i++) if (s[i] <= '9' && s[i] >= '0') a[++cnt] = s[i]-'0';//如果当前位置上的字符在 '0' 到 '9' 之间,则插入 a 数组,对应序号++
	sort(a+1,a+cnt+1);//排序
	for (int i = cnt;i >= 1;i--) cout << a[i];//倒序输出
	return 0;
}

评论

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

正在加载评论...