Я работаю над проблемой "самой длинной алфавитной подстроки" из популярного курса MIT. Я прочитал много информации на SO о том, как ее кодировать, но я действительно изо всех сил пытаюсь сделать скачок концептуально. Упражнения для пальцев, предшествовавшие ему, были не слишком сложными. Мне было интересно, если кто-нибудь знает какой-либо материал там, который действительно сломал бы решение проблем, используемых в этой проблеме. Я пытался достать ручку и бумагу, и я просто заблудился. Я вижу людей, использующих своего рода "счетчики" или строки, которые содержат "самую длинную подстроку на данный момент", и когда я смотрю на чье-то решение, я могу понять, что они сделали со своим кодом, но если я пытаюсь синтезировать что-то свое, просто не щелкаю.
Я даже взял перерыв в курсе и попробовал учиться по другим книгам, но я продолжаю возвращаться к этой проблеме и чувствую, что мне нужно ее преодолеть. Я думаю, что я борюсь с тем, чтобы сделать шаг от знания некоторых синтаксисов и инструментов Python к реальному использованию этих инструментов для решения проблем или «вычисления».
Прежде чем кто-либо укажет мне на это, я знаю о материалах курса, которые направлены на помощь. Я видел несколько видео, которые сделал один из ТА, которые несколько полезны, но на самом деле он этого не сломал. Я чувствую, что мне нужно спрограммировать это с кем-то или как ... сесть перед доской и попросить кого-нибудь пройти меня шаг за шагом и ответить на каждый глупый вопрос, который у меня возникнет.
Для справки, проблема заключается в следующем:
Предположим, s - это строка строчных букв.
Напишите программу, которая печатает самую длинную подстроку s, в которой буквы располагаются в алфавитном порядке. Например, если s = 'azcbobobegghakl', то ваша программа должна вывести
Самая длинная подстрока в алфавитном порядке: beggh
В случае связей выведите первую подстроку. Например, если s = 'abcbcd', то ваша программа должна вывести
Самая длинная подстрока в алфавитном порядке: abc
Я знаю, что полезно публиковать код, но у меня нет ничего, чего бы не было в SO, потому что, ну, это то, с чем я играл в моей IDE, чтобы понять, могу ли я понять, что происходит. Опять же, не ищите фрагменты кода - больше чтения или ресурсов, которые расширят логику, используемую в этой проблеме. Я опубликую то, что у меня есть, но это не завершено, и это так далеко, как я получаю, прежде чем я начинаю чувствовать смущение.
s = 'azcbobobegghakl'
current = s[0]
longest = s[0]
for letter in range(0, len(s) -1):
if s[letter + 1] >= s[letter]:
current.append(s[letter + 1])
if len(current) > len(longest):
longest = current
else:
current =
Извините за ошибки форматирования, все еще новичок в этом. Я действительно разочарован этой проблемой.