刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

38.给定一个完全由数字字符('0','1','2',...,'9')构成的字符串str,请写出str的p型编码串。例如:字符串1335554668可被描述为“1个1、2个3、3个5、1个4、2个6、1个8”,因此我们说1335554668的p型编码串为112335142618;00000000000可描述为“11个0”,因此它的p型编码串为110;类似的道理,编码串101可以用来描述1111111111;110003444225可描述为“2个1、3个0、1个3、3个4、2个2、1个5”,因此它的p型编码串为213013342215。如果输入非数字字符,则提示输入无效。根据上述算法思想,补全下列代码。s=input("请输入字符串str:")s+=' 'lens=len(s)for i in range(0, ① ,1): if '0'<=s[i]<='9': ② else: print('输入无效!') exit()sum=1i=0while i if ③ : sum+=1 else: print(sum,end='') print(s[i],end='') ④ i+=1

使用微信搜索喵呜刷题,轻松应对考试!

答案:

① range(0, lens, 1)② count = s[i]③ s[i] >= '0' and s[i] <= '9'④ i < lens

解析:

【喵呜刷题小喵解析】:

1. 首先,我们根据题目描述,知道p型编码串是将字符串中的每个数字字符及其出现的次数表示出来。例如,字符串"1335554668"可以表示为"1个1、2个3、3个5、1个4、2个6、1个8"。
2. 在给出的代码中,首先通过`input`函数获取用户输入的字符串`str`,然后获取其长度`lens`。
3. 使用`for`循环遍历字符串`str`中的每个字符,对于每个字符,检查其是否为数字字符('0'到'9')。
4. 如果字符是数字字符,则初始化一个计数器`count`,其值为该字符,然后使用`while`循环遍历字符串`str`中从当前字符开始的所有相同字符,每次循环将计数器`count`加1。
5. 如果在遍历过程中遇到非数字字符,则输出已经计算出的数字字符及其出现次数,并继续处理下一个字符。
6. 根据上述逻辑,我们可以补全代码中的①、②、③、④部分。


* ①处,使用`range(0, lens, 1)`表示从索引0开始,到字符串长度`lens`结束,步长为1,即遍历整个字符串。
* ②处,将当前字符赋值给计数器`count`。
* ③处,检查当前字符是否为数字字符,即`s[i] >= '0' and s[i] <= '9'`。
* ④处,使用`i < lens`作为`while`循环的条件,表示继续遍历直到字符串结束。
创作类型:
原创

本文链接:38.给定一个完全由数字字符('0','1','2',...,'9')构成的字符串str,请写出st

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share