Я пытаюсь написать некоторый код для анализа произвольной строки s, чтобы вернуть максимально длинную строку из s в алфавитном порядке. Я думаю, что я получаю правильную идею, но я продолжаю получать IndexError, когда я использую для l oop. Вот код (в Python) и некоторое объяснение того, откуда возникла ошибка после:
s = 'azcbobobegghakl'
a = 'abcdefghijklmnopqrstuvwxyz'
temp = ''
temp_len = len(temp)
longest = ''
longest_len = len(longest)
for i in range(len(s)):
temp += s[i]
if s[i+1] not in a[a.index(s[i]):len(a)]:
temp = ''
if temp_len > longest_len:
longest = temp
print(longest)
Кажется, что ошибка возникла из первого оператора if-else внутри l oop тело. Всякий раз, когда у меня есть «s [i + 1]», я получаю IndexError только для этой строки кода. Это не происходит, когда я изменяю его на "s [i]". Кто-нибудь знает причину этой ошибки? Могу ли я не ссылаться на индексы за пределами индекса текущей итерации для l oop? Кроме того, заранее спасибо, и любая помощь приветствуется.
Сообщение об ошибке говорит:
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/edX/introduction.py", line 10, in <module>
if s[i+1] not in a[a.index(s[i]):len(a)]:
IndexError: string index out of range