【发布时间】:2021-04-14 18:42:05
【问题描述】:
我正在研究 python,但在实验室遇到了问题。需要计算字符串中s字符的最长序列,只能使用for循环等基本工具。
我提出的代码有效,但感觉就像我使用了不恰当的逻辑,添加了一个带有额外空间的 sequence_extended 变量。但是,如果没有此扩展名,则序列为例如sssdssss 计算只适用于第一个序列。
有没有办法避免这种扩展?我已经尝试过寻找一个想法,但解决方案通常是使用我们还不允许使用的功能,例如列表等。
sequence = input('enter a line: ')
sequence_extended = sequence + ' '
counter = 0
final_counter = 0
for symbol in sequence_extended:
if symbol == 's':
counter += 1
else:
if counter > final_counter:
final_counter = counter
counter = 0
print("The longest sequence of 's':", final_counter)
【问题讨论】:
-
你不能用字典吧?
-
@Mick 是的,没错
-
这是一个简单的问题,等等
-
如果最后一个符号是“s”,您需要添加一行。正如您现在所拥有的那样,最终计数器仅在最后一个字符不是“s”时才会更新(为什么在末尾添加额外的空格会修复它)。
-
你可以使用while循环吗?如果不是,我可以将其设为 for 循环
标签: python string character lab