Требуется найти в данной строке самую длинную подстроку, которая начинается и заканчивается одним и тем же символом. Входные данные - строка, состоящая только из строчных латинских букв, длиной не более 100 символов. Выведите найденную подстроку. Пример ввода: misis, пример вывода: isi.
Хрусталь
Хорошо, чтобы найти самую длинную подстроку, которая начинается и заканчивается одним и тем же символом в данной строке, нужно использовать следующий алгоритм:
1. Создайте переменную maxLength и присвойте ей значение 0. Она будет использоваться для хранения длины самой длинной найденной подстроки.
2. Создайте переменные start и end и присвойте им значения -1. Они будут использоваться для хранения индексов начала и конца самой длинной найденной подстроки.
3. Пройдите по всем символам в строке и для каждого символа выполните следующие шаги:
- Найдите первое вхождение текущего символа в строку, начиная с текущего индекса символа. Обозначим его как newStart.
- Если newStart не равно -1 и разность newStart и текущего индекса символа больше или равна maxLength, то:
- Обновите maxLength, присвоив ему значение разности newStart и текущего индекса символа.
- Обновите start, присвоив ему значение newStart.
- Обновите end, присвоив ему значение текущего индекса символа.
4. Выведите подстроку, начинающуюся с индекса start и заканчивающуюся индексом end.
Вот решение для примера ввода "misis":
\[
\text{{start}} = 1, \text{{end}} = 3
\]
Поэтому самая длинная подстрока, начинающаяся и заканчивающаяся символом "s", это "isi".
1. Создайте переменную maxLength и присвойте ей значение 0. Она будет использоваться для хранения длины самой длинной найденной подстроки.
2. Создайте переменные start и end и присвойте им значения -1. Они будут использоваться для хранения индексов начала и конца самой длинной найденной подстроки.
3. Пройдите по всем символам в строке и для каждого символа выполните следующие шаги:
- Найдите первое вхождение текущего символа в строку, начиная с текущего индекса символа. Обозначим его как newStart.
- Если newStart не равно -1 и разность newStart и текущего индекса символа больше или равна maxLength, то:
- Обновите maxLength, присвоив ему значение разности newStart и текущего индекса символа.
- Обновите start, присвоив ему значение newStart.
- Обновите end, присвоив ему значение текущего индекса символа.
4. Выведите подстроку, начинающуюся с индекса start и заканчивающуюся индексом end.
Вот решение для примера ввода "misis":
\[
\text{{start}} = 1, \text{{end}} = 3
\]
Поэтому самая длинная подстрока, начинающаяся и заканчивающаяся символом "s", это "isi".
Знаешь ответ?