2025 CCF 非专业级软件能力认证 解析
拼数题目描述小 R 正在学习字符串处理。小 X 给了小 R 一个字符串 s其中 s 仅包含小写英文 字母及数字且包. 含. 至. 少. 一. 个. 1 ∼ 9 中. 的. 数. 字. 。小 X 希望小 R 使用 s 中的任. 意. 多. 个. 数 字按任. 意. 顺. 序. 拼成一个正整数。注. 意. 小. R 可. 以. 选. 择. s 中. 相. 同. 的. 数. 字. 但. 每. 个. 数. 字. 只. 能. 使. 用. 一. 次。. 例如若 s 为 1a01b则小 R 可以同时选择第 1, 3, 4 个字符分别为 1, 0, 1拼成正整数 101 或 110但小 R 不能拼成正整数 111因为 s 仅包含两个数字 1。小 R 想知道在他所有能拼成的正整数中最大的是多少。你需要帮助小 R 求出 他能拼成的正整数的最大值。【输入格式】从文件 number.in 中读入数据。输入的第一行包含一个字符串 s表示小 X 给小 R 的字符串。【输出格式】输出到文件 number.out 中。 输出一行一个正整数表示小 R 能拼成的正整数的最大值。【样例 1 输入】5【样例 1 输出】5【样例 1 解释】s 仅包含一个数字 5因此小 R 仅能拼成正整数 5。【样例 2 输入】290es1q0【样例 2 输出】92100【样例 2 解释】s 包含数字 2, 9, 0, 1, 0。可以证明小 R 拼成的正整数的最大值为 92100。题目解析需要解析字符串知道有哪些数字在字符串中循环遍历建立一个长度为10的数字数组numArr在循环字符串时将对应下标的数组 a[i] 进行1逆序便利数组从最大的下标开始循环 -1下标数值非0即该下标数值存在与字符串中再次排列数值为一个新字符串如果字符数组则通过numArr求和获取长度该数值即为最大正整数代码解析#include iostream #include string using namespace std; int main() { string s; cin s; // 假设输入是一行字符串 int cnt[10] {0}; for (char c : s) { if (isdigit(c)) { cnt[c - 0]; } } string ans; for (int i 9; i 0; --i) { ans.append(cnt[i], 0 i); } cout ans endl; return 0; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425813.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!