Нахождение самой большой подстроки 1-х - PullRequest
1 голос
/ 10 апреля 2020

Я хочу наибольшую подстроку из 1

inp = input("ENter number")
count = 1
num = []
for i in range(len(inp)):
    if (inp[i] == inp[i+1]):
       count+=1
       num.append(count)
    count = 1
print(max(num))

, это вход "10110111", выход должен быть 3

, но есть ошибка

 if (inp[i] == inp[i+1]):

IndexError: строковый индекс вне диапазона

Ответы [ 3 ]

5 голосов
/ 10 апреля 2020

Вы можете решить это легко. Метод Split () разделит ваш строковый ввод и вернет список, и вы можете просто найти элемент с максимальной длиной

inp = input("Enter number")
max_Ones = len(max(inp.split('0'), key=len))
print(max_Ones)
3 голосов
/ 10 апреля 2020

Я бы использовал re.findall , а затем преобразовал бы каждую группу в ее длину:

import re
inp = input("Enter number: ")
result = max(len(x) for x in re.findall('1+', input))
print(result)
1 голос
/ 10 апреля 2020

Попробуйте это ниже:

inp = input("ENter number")
count = 0
result = 0
for i in range(0, len(inp)):
    if inp[i] == '0':
        count = 0
    elif inp[i] == '1':
        count += 1
        result = max(result, count)
print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...