#G326092. [GESP202609 三级 C++] 27. 分割字符串

提交1 通过1
通过率100%
时间限制1000ms
内存限制512MiB

题目描述

题目描述

小明拿到了一段字符串文本,小明希望用下面的规则分割这个字符串:

  1. 小明从左到右扫描字符串,遇到第一个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格)。
  2. 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续两个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这两个空格)。
  3. 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续三个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这三个空格)。
  4. 以此类推,小明每分割一次,下一次分割就需要更长的连续空格;直到字符串无法再次分割。

最后输出每次分割的左侧的字符串,以及最后一次分割的右侧字符串。如果字符串完全无法进行任何一次分割,直接输出其本身。

输入格式

输入一行,一个字符串。

输出格式

输出若干行。每行为分割后的一个字符串,注意依次输出:第一次分割左侧的字符串,第二次分割左侧的字符串,……,最后一次分割左侧的字符串,最后一次分割右侧的字符串。

输入样例 1

sdfd 55 55   99312

输出样例 1

sdfd
55 55
 99312

样例解释 1

第一次分割得到 sdfd55 55 99312。第二次分割需要连续两个空格,所以跳过两个 55 中间的单空格,在三个连续空格处仅消耗两个,得到 55 55 99312。右侧留下的一个空格不满足第三次要求。

输入样例 2

AbCd   999

输出样例 2

AbCd

999

样例解释 2

第一次消耗三个连续空格中的第一个,得到 AbCd 999。第二次从右侧字符串开头消耗两个空格,得到空字符串和 999,所以输出中的空行不能省略。

数据范围

字符串长度不超过 10001000,字符串中只包含大写字母、小写字母、数字或空格,且输入字符串不会以空格结尾。

特别强调:输入仅一行,但可能包含若干空格。