14201. [GESP202609 四级 Scratch] 27. 星号切切切

Scratch 编程 · 满分 25 分

[GESP202609 四级 Scratch] 27. 星号切切切

原卷图示

原卷图示

【题目描述】

小杨有一串由小写字母和星号 * 组成的字符串。他想用星号把字符串切成一段一段的,规则很简单: 从左到右扫描字符串,找到第一个星号 *,把它切掉,分成左右两段。 然后只看右边那段,继续找第一个星号,切掉,再分左右……一直重复,直到剩下的字符串里没有星号为止。

默认小猫角色和白色背景,请你帮小杨编写一个 图形化编程 程序,把所有切出来的片段(包括可能出现的空串)按顺序存到一个列表 ans 中。

注意: 每次只切掉一个星号,切掉后它就不在了。 如果某次切的时候,左边或右边什么都没有(空串),也要把空串存进列表。

【输入描述】

新建变量“s”,表示一个里面只包含小写字母和星号 * 的字符串(字符串长度不超过 100)。

如下图所示:

原卷图示

【输出描述】

新建列表“ans”,用于存储最终的结果。列表里的每一项就是一个切出来的字符串(包括空串)。

如下图所示:

原卷图示

【输入样例1】

s= "abc*de*f*gh"

【输出样例1】

ans = ["abc", "de", "f", "gh"]

【样例解释1】

原始字符串:abc*de*f*gh

  • 第1次:找到第一个 *,切掉,左边得 abc,右边剩 de*f*gh。

  • 第2次:在右边 de*f*gh 中找到第一个 *,切掉,左边得 de,右边剩 f*gh。

  • 第3次:在右边 f*gh 中找到第一个 *,切掉,左边得 f,右边剩 gh。

  • 第4次:右边 gh 中没有 *,结束。

所有片段:abc、de、f、gh,存入列表。

【输入样例2】

s = "*abc*"

【输出样例2】

ans = ["", "abc", ""]

【样例解释2】

原始字符串:*abc*

  • 第1次:第一个 * 在最前面,左边得空串,右边剩 abc*。

  • 第2次:右边 abc* 中找到 *,左边得 abc,右边剩空串。

  • 第3次:右边为空,没有 *,结束。

所有片段:空串、abc、空串。

注意事项:

  1. 变量名的拼写(包括大小写)要和题目完全一致(建议直接从题目中复制变量名,避免自己打字时弄错大小写或拼写)。

  2. 输入变量直接赋值即可,无需使用“询问并等待”积木块。

  3. 输出结果存放在对应列表中即可。

我的作品

在编辑器中完成积木,提交后查看结果。

历史提交