Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Интересная задача в python? Решать нужно в цикле (for) без функций и методов! Можно использовать условные операторы!

Сергей Вилков Ученик (88), на голосовании 3 года назад
Напишите программу, которая получает на вход строку, подсчитывает в ней самую длинную последовательность подряд идущих букв “s” и выводит ответ на экран.

Пример:

Введите строку: ssbbbsssbc
Самая длинная последовательность: 3
Голосование за лучший ответ
viv2537 Оракул (88375) 3 года назад
не, не особо интересная, через один while считается
Сергей ВилковУченик (88) 3 года назад
А без while?
viv2537 Оракул (88375) Сергей Вилков, через 2 for
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'
port port Искусственный Интеллект (181542) Veter ., Добавь перед print (result) if count>result: result=count
Сергей ВилковУченик (88) 3 года назад
Результат получается = 5, а это не правильно. Вы считаете общее количество "s", а не самую длинную её последовательность.
port port Искусственный Интеллект (181542) Сергей Вилков, Условие задачи поменялось на s='ssbbbsssbcsssss'
Сергей ВилковУченик (88) 3 года назад
И всё-равно вы считаете общую сумму "s", а в условие задачи нужно: подсчитывать самую длинную последовательность подряд идущих букв “s” и выводит ответ на экран?
port port Искусственный Интеллект (181542) Сергей Вилков, В s='ssbbbsssbcsssss' самая длинная последовательность s находится в конце строки и равна 5... Или я что-то путаю?
Тимур Пономарёв Мастер (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)
Сергей ВилковУченик (88) 3 года назад
Я так и сам могу! Ты попробуй без: max, len, [ ] !
Veter . Мастер (1105) 3 года назад
Сергей ВилковУченик (88) 3 года назад
А без len и [ i ] (без индексации)?
Veter . Мастер (1105) Сергей Вилков, в смысле? А как обращаться к конкретному символу? Без этого никак
Сергей ВилковУченик (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)
Похожие вопросы