#szsc3b. 小杨整理口令

    ID: 9373 传统题 30000ms 512MiB 尝试: 0 已通过: 0 上传者: 标签>字符串处理复杂的嵌套结构复杂的逻辑判断输入与输出编程题复杂的逻辑判断·三星复杂的嵌套结构·三星输入与输出·三星字符串处理·三星scratch三级

小杨整理口令

小杨有一串只由小写英文字母组成的口令,他想把它写得短一些:从左往右扫描,把连续出现的相同字母算作一组,例如 aaabbcd 依次分成 aaa、bb、c、d 四组。

他挑了一个正整数 k 作为改写的门槛。一组的字母个数大于或等于 k,就把这一组改写成「这个字母」加上「这一组的字母个数」,个数直接写成数字,例如一组有 12 个 a 就改写成 a12;不足 k 个的组原样保留。把各组按原来的顺序连接起来,就是整理后的口令。

默认小猫角色和白色背景,编写程序帮小杨算出整理后的口令。

样例舞台效果如下图:

小杨整理口令舞台效果

输入描述

新建变量“s”,表示小杨的口令,只由小写英文字母组成。

新建变量“k”,表示改写的门槛,是一个正整数。

数据范围:1≤s 的长度≤30,1≤k≤10。

输出描述

新建变量“ans”,表示整理后的口令。

编程提示

  1. 逐个读取“s”的每个字符,用一个变量记住当前这一组是哪个字母,再用一个变量记住这一组已经数到几个。字符和上一个相同就继续数,不同就说明一组结束了。
  2. 每结束一组,先和“k”比一比再决定写进“ans”的内容:够 k 个就写字母加个数,不够就把这个字母连写这么多遍。扫描到最后一个字符时,最后一组也要记得处理。
  3. 输入变量由系统在运行时给出,不要使用【询问并等待】积木,也不要在程序中修改“s”和“k”。

输入样例

s = aaabbcd

k = 2

输出样例

ans = a3b2cd

输入样例

s = xxyyyzz

k = 3

输出样例

ans = xxy3zz