测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A37230. 给定一个完全由数字字符('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”,因此它…

填空题 困难

题目描述

给定一个完全由数字字符('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 = 1

i = 0

while i < lens - 1:

    if _____③_____:

sum += 1

else :

print(sum, end = '')

print(s[i], end = '')

_____④_____

        i += 1

参考答案

s = input("请输入字符串 str:") s += ' ' lens = len(s) for i in range(0, lens - 1, 1): if '0' <= s[i] <= '9': continue else : print('输入无效!') exit() sum = 1 i = 0 while i < lens - 1: if s[i] == s[i + 1]: sum += 1 else : print(sum, end = '') print(s[i], end = '') sum = 1 i+= 1

答案解析

评分标准:

(1) lens-1 或等效答案; (2 分)

(2) continue 或等效答案; (2 分)

(3) s[i]==s[i+1] 或者 s[i+1]==s[i] 或等效答案; (3 分)

(4) sum=1 或等效答案。 (3 分)

上一题 下一题