5605:[GESP202609三级] 分割字符串

文件提交:无需freopen 内存限制:512 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0 解决:0

题目描述

## 题目背景 2026 年 09 月 GESP C++ 三级编程第 2 题 ## 题目描述 小明拿到了一段字符串文本,小明希望用下面的规则分割这个字符串: 1. 小明从左到右扫描字符串,遇到第一个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格); 2. 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续两个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这两个空格); 3. 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续三个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这三个空格); 4. 以此类推,小明每分割一次,下一次分割就需要更长的连续空格;直到字符串无法再次分割。 最后输出每次分割的左侧的字符串,以及最后一次分割的右侧字符串。 如果字符串完全无法进行任何一次分割,直接输出其本身。 ## 输入格式 输入一行,一个字符串。 ## 输出格式 输出若干行。每行为分割后的一个字符串,注意依次输出: 第一次分割左侧的字符串,第二次分割左侧的字符串,……,最后一次分割左侧的字符串,最后一次分割右侧的字符串。 ## 样例 ```input1 sdfd 55 55 99312 ``` ```output1 sdfd 55 55 99312 ``` ```input2 AbCd 999 ``` ```output2 AbCd 999 ``` ## 说明/提示 ### 样例解释 1 1. 第一次分割将字符串分割为 `sdfd` 和 `55 55 99312`; 2. 第二次分割将字符串分割为 `55 55` 和 ` 99312`。 对于第二次分割,注意 `55` 和 `55` 之间虽然有空格,但是第二次分割需要连续两个空格才行; 另外,`55 55` 和 `99312` 之间有三个空格,第二次分割只需要两个,所以会分割为 `55 55` 和 ` 99312`,也就是右侧会留下一个空格;因为只留下了一个空格,所以不再满足第三次分割要求。 ### 样例解释 2 1. 第一次分割将字符串分割为 `AbCd` 和 ` 999`; 2. 第二次分割将字符串分割为 空字符串 和 `999`。 由于 `AbCd` 和 `999` 之间有三个空格,第一次分割消耗掉一个,因此还能进行第二次分割,这个时候会分割出空字符串,因此输出中会输出一个空行(不能省略)。 ## 数据范围 字符串长度不超过 $1000$,字符串中只包含大写字母、小写字母,数字,或**空格**,且输入字符串不会以空格结尾。 特别强调:输入仅一行,但可能包含若干**空格**

来源/分类