Задача говорит: в строке все символы между первым и последним должны находиться в диапазоне между первым и последним символами в алфавитном порядке (включительно). Мы будем считать порядок символов по их коду в Unicode (то есть обычный порядок символов в Python).
Краткий план решения:
- Пусть s — данная строка, f = s[0] (первый символ), l = s[-1] (последний символ).
- Если длина строки <= 2, между первым и последним символами нет символов, условие выполняется автоматически → ответ "ДА".
- Для каждого символа c в s[1:-1] проверяем: f <= c <= l. Если найдётся хотя бы один символ, нарушающий условие, выводим "НЕТ".
- Если все middle-сообщения удовлетворяют условию, выводим "ДА".
Пояснение к примерам:
- Пример 1: s = "аыостлвоисрвавроая". f = 'а', l = 'я'. Все средние символы находятся в диапазоне от 'а' до 'я' (они тоже кириллицей), следовательно ответ: ДА.
- Пример 2: s = "0фыооыовотваоаоаьла1". f = '0', l = '1'. Средние символы — кириллические буквы, их код-позиции больше, чем '1' в Unicode, поэтому условие нарушено. Ответ: НЕТ.
Простой реализационный пример на Python:
def vasya_check(s: str) -> str: if len(s) <= 2: return "ДА" f, l = s[0], s[-1] for c in s[1:-1]: if not (f <= c <= l): return "НЕТ" return "ДА"
- Сложность: O(n), где n — длина строки.
- Память: O(1) сверх самой строки.
Если хочешь, могу привести реализацию на другом языке (C++, Java) или прогнать тесты на нескольких примерах.