Python 字符串中最长的字符序列

问题描述 投票:0回答:2

我正在学习 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)
python string character
2个回答
1
投票
sequence = "sssdssss"
max_len = 0

for i in range(len(sequence)):
    if sequence[i] == "s":
        j = i
        length = 0
        while j < len(sequence) and sequence[j] == "s":
            length += 1
            j += 1
        if length > max_len:
            max_len = length

print("The longest sequence of 's':", max_len)

0
投票

事实上,我想出了一个更简单的选择:

sequence = input('enter a sequence: ')

first_counter = 0
second_counter = 0

for symbol in sequence:
  if symbol == 's':
    first_counter += 1
  if symbol != 's':
    first_counter = 0  
  if second_counter < first_counter:
    second_counter = first_counter
print("the longest sequence of 's':", second_counter)

这似乎是这个问题的最佳解决方案。以防万一其他人有这样的实验室来解决。

© www.soinside.com 2019 - 2024. All rights reserved.