Голосование за лучший ответ
port port
Искусственный Интеллект
(181542)
3 года назад
На тебе for...
s='ssbbbsssbc'
count=0
result=0
for i in s:
~~if i=='s': count+=1
~~else:
~~~~if count>result: result=count; count=0
if count>result: result=count;
print (result)
Veter .Мастер (1105)
3 года назад
А вот в таком случае ваша программа не работает
s='ssbbbsssbcsssss'
Сергей ВилковУченик (88)
3 года назад
Результат получается = 5, а это не правильно. Вы считаете общее количество "s", а не самую длинную её последовательность.
Сергей ВилковУченик (88)
3 года назад
И всё-равно вы считаете общую сумму "s", а в условие задачи нужно: подсчитывать самую длинную последовательность подряд идущих букв “s” и выводит ответ на экран?
Тимур Пономарёв
Мастер
(1518)
3 года назад
Что тут интересного? Если тебе нужно написать программу то просто иди в цикле for до конца строки и символы сравнивает
stroka = input()
counter = 1
max = 0
for i in range(1, len(stroka)):
____if stroka[i] == stroka[i-1] == 's':
________counter = counter + 1
________if counter > max:
____________max = counter
____else:
________counter = 1
print(max)
Veter .
Мастер
(1105)
3 года назад
Сергей ВилковУченик (88)
3 года назад
Вот в этом то и дело (и вся сложность простой задачи), что нужно решить без этого!?
Сергей ВилковУченик (88)
3 года назад
Вот так можно переложить ваш код на простой "язык"!
print('Введите строку: ', end = '')
text = input()
text += ''
count_s = 0
letter = 0
for symbol in text:
if symbol == 's':
letter += 1
else:
if letter > count_s:
count_s = letter
letter = 0
print('Самая длинная последовательность: ', count_s)
SkkkN
Профи
(800)
2 года назад
string = input('Введите строку: ')
count = 0
result = 0
for symbol in string:
~~if symbol == 's':
~~~~count += 1
~~elif count < result and symbol != 's':
~~~~count = 0
~~else:
~~~~if count > result:
~~~~~~result = count
~~~~~~count = 0
if count > result:
~~result = count
print('Самая длинная последовательность: ', result)
Пример:
Введите строку: ssbbbsssbc
Самая длинная последовательность: 3