告诉我这个任务怎么做?我不明白为什么代码只计算字符,请告诉我哪里出了问题以及最好的方法是什么。
s = input("Введите строку: ")
left = 0
right = len(s)
dots_count = 0
symbol_count = 0
symbol2 = 0
symbol = []
while left != right:
if s[left] == '.':
dots_count += 1
else:
symbol_count += 1
if dots_count == 4:
dots_count = 0
if s[left] == '.':
dots_count += 1
else:
symbol2 += 1
left += 1
symbol.append(max(symbol_count, symbol2))
print(max(symbol))
你的程序没有向右移动,但是这个索引必须从行的开头开始:
你的程序认为有些奇怪的事情:
.a.a.a.a.a..a.a.a.a.a..a.a.a.a...a.a.a.a...a.a.a...a.a.a...看起来您正在返回非点字母的数量,但您应该返回带点的子字符串的长度。即使您解决了这个问题,您的程序仍然不会检查所有可能的子字符串。
解决方案
indices(seq, item)item返回序列中某个值的所有索引seq。它还-1在开头和结尾处的序列末尾添加索引。interval(seq, k)k按位置间隔顺序运行两个迭代器。main()输入一个字符串并以五个位置的间隔迭代所有点对。从这些中,选择具有最大距离的对。如果没有这样的对,则打印字符串的长度。