在输入中,我们得到了字符串
asdfssgAAatG
输出必须是一个压缩字符串,并带有字母计数。例如输入
aabggtttf
必须给予
a2b1g2t3f1
所以字母和它在输出行中重复了多少次。输入
abc
必须给予
a1b1c1
在输出中。所以我写了一些代码:
a=str(input())+' '
count=1
b=1
r=''
for i in range (a.count('')-2):
if a[i]==a[i+1]:
b+=1
else:
count=b
b=1
r=r+a[i]+str(count)
if a!=' ':
print(result=r[0:-1]+str(count))
对我来说,代码工作完美,当我把测试输入它给出正确的答案。但在我需要插入密码的地方steptic.org网站“有些自动测试会出错,我无法完成这项任务。所以这里的问题是:这段代码有什么问题,什么输入会产生错误?也许这里有更简单的方法在Python上执行这个任务? 我英语不好的原因是:) 另外,测试内容我看不到,我试了一些测试数据-所有的工作。。,似乎我就是想不出什么数据给出了错误的答案。你知道吗
目前还不清楚哪些测试失败了,以什么方式失败了,所以我不能对此发表评论。你知道吗
但是,您可以使用
itertools.groupby()
来实现所需的结果:此处:
for l, g in itertools.groupby(s)
迭代相同字母的序列'%s%d' % (l, sum(1 for _ in g)))
生成一个由字母和运行长度组成的字符串。你知道吗如果您不担心字母的大小写:使用
collections.Counter
创建函数并返回它:
使用
itertools.groupby
:相关问题 更多 >
编程相关推荐