Я заканчиваю курс «Введение в информатику и программирование с использованием Python» и застрял на неделе 1: основы Python — набор задач 1 — задача 3.
Проблема спрашивает:
Предположим, что s — это строка символов нижнего регистра.
Напишите программу, которая выводит самую длинную подстроку s, в которой буквы расположены в алфавитном порядке. Например, если
s = 'azcbobobegghakl'
, ваша программа должна напечататьСамая длинная подстрока в алфавитном порядке: beggh
В случае ничьей выведите первую подстроку. Например, если
s = 'abcbcd'
, ваша программа должна напечатать*Самая длинная подстрока в алфавитном порядке: abc
Есть много сообщений о переполнении стека, где люди просто ищут или дают код в качестве ответа. Я хочу понять концепцию кода, так как я новичок в программировании и хочу лучше понять основы
Я нашел следующий код, который, кажется, отвечает на вопрос. Я понимаю основную концепцию цикла for, но мне трудно понять, как их использовать (циклы for) для поиска алфавитных последовательностей в строке
Может кто-нибудь, пожалуйста, помогите мне понять концепцию использования циклов for таким образом.
s = 'cyqfjhcclkbxpbojgkar'
lstring = s[0]
slen = 1
for i in range(len(s)):
for j in range(i,len(s)-1):
if s[j+1] >= s[j]:
if (j+1)-i+1 > slen:
lstring = s[i:(j+1)+1]
slen = (j+1)-i+1
else:
break
print("Longest substring in alphabetical order is: " + lstring)