Я занимался вопросом поиска самой длинной подстроки в алфавитном порядке от заданной строки. У меня большой опыт работы на C++, но я абсолютно новый для python. Ive написал этот кодПоиск самой длинной подстроки в алфавитном порядке от заданной строки
s = raw_input("Enter a sentence:")
a=0 #start int
b=0 #end integer
l=0 #length
i=0
for i in range(len(s)-1):
j=i
if j!=len(s)-1:
while s[j]<=s[j+1]:
j+=1
if j-i>l: #length of current longest substring is greater than stored substring
l=j-i
a=i
b=j
print 'Longest alphabetical string is ',s[i:j]
Но я продолжаю получать эту ошибку
Traceback (most recent call last):
File "E:/python/alphabetical.py", line 13, in <module>
while s[j]<=s[j+1]:
IndexError: string index out of range
Что я делаю неправильно здесь? Опять же, я очень новичок в python!
Что делать, если строка пуста? – NoChance
Я думаю, что ваша последняя строка должна иметь 's [a: b]' вместо 's [i: j]'. –
Do * not * использовать однобуквенные переменные. В вашем коде вам даже пришлось добавлять комментарии, чтобы мы поняли это! Просто используйте 'a -> start_index',' b -> end_index', 'l -> length' [BTW * never * используйте строчные буквы' L'. во многих шрифтах он слишком похож на '1'. 'i' и' j' приемлемы, поскольку они являются стандартными именами для индексов. – Bakuriu