当前位置:首页 > 排序 > 正文
CSP2025入门组拼数(第一题)
6+

题目大意:从一个字符串中选出若干个数字字符,拼凑出来的数字最大是多少?

题目描述

小 R 正在学习字符串处理。小 X 给了小 R 一个字符串 $s$,其中 $s$ 仅包含小写英文字母及数字,且**包含至少一个 $1 \sim 9$ 中的数字**。小 X 希望小 R 使用 $s$ 中的任意多个数字,按任意顺序拼成一个正整数。**注意:小 R 可以选择 $s$ 中相同的数字,但每个数字只能使用一次**。例如,若 $s$ 为 $\tt 1a01b$,则小 R 可以同时选择第 $1,3,4$ 个字符,分别为 $1,0,1$,拼成正整数 $101$ 或 $110$;但小 R 不能拼成正整数 $111$,因为 $s$ 仅包含两个数字 $1$。小 R 想知道,在他所有能拼成的正整数中,最大的是多少。你需要帮助小 R 求出他能拼成的正整数的最大值。

输入格式

输入的第一行包含一个字符串 $s$,表示小 X 给小 R 的字符串。

输出格式

输出一行一个正整数,表示小 R 能拼成的正整数的最大值。

说明/提示

### 【样例 2 解释】$s$ 包含数字 $2,9,0,1,0$。可以证明,小 R 拼成的正整数的最大值为 $92100$。

### 【样例 3】

见选手目录下的 $number/number3.in$ 与 $number/number3.ans$。该样例满足测试点 $9 \sim 11$ 的约束条件。

### 【样例 4】

见选手目录下的 $number/number4.in$ 与 $number/number4.ans$。该样例满足测试点 $20$ 的约束条件。

### 【数据范围】

设 $|s|$ 为字符串 $s$ 的长度。对于所有测试数据,保证:
– $1 \leq |s| \leq 10^6$;
– $s$ 仅包含小写英文字母及数字,且包含至少一个 $1 \sim 9$ 中的数字。

::cute-table{tuack}

| 测试点编号 | $\lvert s\rvert \leq$ | 特殊性质 |
| :–: | :–: | :–: |
| $1$ | $1$ | A |
| $2$ | $2$ | ^ |
| $3$ | ^ | 无 |
| $4$ | $10$ | A |
| $5,6$ | ^ | 无 |
| $7,8$ | $10^2$ | A |
| $9 \sim 11$ | ^ | 无 |
| $12$ | $10^3$ | A |
| $13,14$ | ^ | 无 |
| $15$ | $10^5$ | A |
| $16,17$ | ^ | B |
| $18,19$ | ^ | 无 |
| $20$ | $10^6$ | A |
| $21,22$ | ^ | B |
| $23 \sim 25$ | ^ | 无 |

– 特殊性质 A:$s$ 仅包含数字。
– 特殊性质 B:$s$ 仅包含不超过 $10^3$ 个数字。

解题思路

贪心:取出字符串中的所有数字,从大到小拼接即可。

程序实现

About

坚决不Copy代码!

本文标签:,,,,,,,

报歉!评论已关闭.