Найдите самую длинную подстроку строки, которая имеет совпадающие первый и последний символы. Входные данные - строка из строчных латинских букв длиной не более 100 символов. Выведите результат. Примеры:
Ввод: misis
Вывод: isi
Ввод: ab
Вывод: a
Ввод: PYTHON
Вывод: ON
Ввод: misis
Вывод: isi
Ввод: ab
Вывод: a
Ввод: PYTHON
Вывод: ON
Магический_Вихрь
Для нахождения самой длинной подстроки, которая имеет совпадающие первый и последний символы, мы можем использовать следующий алгоритм:
1. Инициализируем переменную `max_substring` пустой строкой. Она будет содержать самую длинную подстроку с заданным условием.
2. Проходимся по каждому символу входной строки.
3. Для каждого символа `ch` сравниваем его с последним символом строки. Если они совпадают, то это потенциальная подстрока с заданным условием.
4. Если текущая подстрока длиннее `max_substring`, то обновляем значение `max_substring`, присваивая ей текущую подстроку.
5. Повторяем шаги 3-4 для всех символов входной строки.
6. В конце алгоритма `max_substring` будет содержать самую длинную подстроку с совпадающими первым и последним символами.
Теперь, применим этот алгоритм к примерам из задачи для лучшего понимания:
Пример 1:
Вход: misis
Шаг 1: Инициализация `max_substring` = ""
Шаг 2: Первый символ "m"
Шаг 3: "m" не совпадает с последним символом "s", поэтому не считаем его подстрокой с заданным условием.
Шаг 4: Обновляем `max_substring` = "".
...
Пропускаем остальные шаги для краткости.
...
Шаг 6: `max_substring` = "isi". Именно эта подстрока имеет максимальную длину 3 и соответствует условию задачи.
Пример 2:
Вход: ab
Шаг 1: Инициализация `max_substring` = ""
Шаг 2: Первый символ "a"
Шаг 3: "a" совпадает с последним символом "b", поэтому это подстрока с заданным условием.
Шаг 4: Обновляем `max_substring` = "ab".
Шаг 6: `max_substring` = "a". Эта подстрока является самой длинной и имеет длину 1.
Пример 3:
Вход: PYTHON
Шаг 1: Инициализация `max_substring` = ""
Шаг 2: Первый символ "P"
Шаг 3: "P" не совпадает с последним символом "N", поэтому не считаем его подстрокой с заданным условием.
Шаг 4: Обновляем `max_substring` = "".
...
Пропускаем остальные шаги для краткости.
...
Шаг 6: `max_substring` = "". Ни одна подстрока не соответствует условиям.
Таким образом, для ввода "misis" самая длинная подстрока с совпадающими первым и последним символами - "isi". Для ввода "ab" такая подстрока - "a". Для ввода "PYTHON" подстроки с таким условием нет.
1. Инициализируем переменную `max_substring` пустой строкой. Она будет содержать самую длинную подстроку с заданным условием.
2. Проходимся по каждому символу входной строки.
3. Для каждого символа `ch` сравниваем его с последним символом строки. Если они совпадают, то это потенциальная подстрока с заданным условием.
4. Если текущая подстрока длиннее `max_substring`, то обновляем значение `max_substring`, присваивая ей текущую подстроку.
5. Повторяем шаги 3-4 для всех символов входной строки.
6. В конце алгоритма `max_substring` будет содержать самую длинную подстроку с совпадающими первым и последним символами.
Теперь, применим этот алгоритм к примерам из задачи для лучшего понимания:
Пример 1:
Вход: misis
Шаг 1: Инициализация `max_substring` = ""
Шаг 2: Первый символ "m"
Шаг 3: "m" не совпадает с последним символом "s", поэтому не считаем его подстрокой с заданным условием.
Шаг 4: Обновляем `max_substring` = "".
...
Пропускаем остальные шаги для краткости.
...
Шаг 6: `max_substring` = "isi". Именно эта подстрока имеет максимальную длину 3 и соответствует условию задачи.
Пример 2:
Вход: ab
Шаг 1: Инициализация `max_substring` = ""
Шаг 2: Первый символ "a"
Шаг 3: "a" совпадает с последним символом "b", поэтому это подстрока с заданным условием.
Шаг 4: Обновляем `max_substring` = "ab".
Шаг 6: `max_substring` = "a". Эта подстрока является самой длинной и имеет длину 1.
Пример 3:
Вход: PYTHON
Шаг 1: Инициализация `max_substring` = ""
Шаг 2: Первый символ "P"
Шаг 3: "P" не совпадает с последним символом "N", поэтому не считаем его подстрокой с заданным условием.
Шаг 4: Обновляем `max_substring` = "".
...
Пропускаем остальные шаги для краткости.
...
Шаг 6: `max_substring` = "". Ни одна подстрока не соответствует условиям.
Таким образом, для ввода "misis" самая длинная подстрока с совпадающими первым и последним символами - "isi". Для ввода "ab" такая подстрока - "a". Для ввода "PYTHON" подстроки с таким условием нет.
Знаешь ответ?