Интересная домашняя работа, но вы все равно должны сами кодировать.
Хорошо, что вы не сказали нам, какой язык вы используете, поэтому я воспринимаю это как знак, так как вы решили сами написать код, которыйэто хорошо.
Моя лучшая попытка на данный момент:
Имеют 2 указателя для подстроки (диапазона), один для начала (меньший индекс)диапазон и один для end (больший индекс).Оба указателя сначала указывают на начало массива.
У вас есть список для , сколько ABCDE находятся в диапазоне соответственно.
Итерация end изслева направо.
Для каждого символа увеличивайте число для символа в списке.Если результат (увеличенный сколько )> 1 (посмотрите, если start указывает на тот же символ. Если да, переместите start вперед и минус 1, и) в то время как начало указывает на символ, соответствующий номер которого> 1, перемещается начало вперед и минус 1.
Если в списке все ABCDE> = 1,тогда мы нашли диапазон кандидатов.Сравните его с самой короткой длиной (если есть), и, если она меньше, обновите самую короткую длину и запишите индекс для начала нового самого короткого диапазона.