Делаем срезы
Используем индексы и срезы с положительным и отрицательным шагом.
Как к ней подойти
Потренируйтесь находить нужные символы и фрагменты строки, не теряя границы срезов.
У строки есть индексы, срезы и методы поиска. Индексация начинается с нуля, правая граница среза не включается. Перед сборкой ответа проверьте, что произойдёт, если искомый фрагмент отсутствует.
Отрицательные индексы отсчитываются от конца, а отрицательный шаг разворачивает направление обхода.
Проверьте перед запуском
- Третий символ имеет индекс 2.
- Обратный срез через один начинается с последнего символа.
- Вход должен содержать как минимум три символа.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Срезы строки
Отрицательные индексы отсчитываются от конца, а отрицательный шаг разворачивает направление обхода.
s = input()
print(s[2])
print(s[-2])
print(s[:5])
print(s[:-2])
print(s[::2])
print(s[1::2])
print(s[::-1])
print(s[::-2])
print(len(s))
Время: O(n). Память: O(n) для строки и срезов.
Другой способ: Сборка по индексам
Явные диапазоны индексов воспроизводят каждый срез. Такой способ длиннее, но показывает, какие позиции выбираются.
s = input()
n = len(s)
print(s[2])
print(s[n - 2])
print(''.join(s[i] for i in range(min(5, n))))
print(''.join(s[i] for i in range(n - 2)))
print(''.join(s[i] for i in range(0, n, 2)))
print(''.join(s[i] for i in range(1, n, 2)))
print(''.join(s[i] for i in range(n - 1, -1, -1)))
print(''.join(s[i] for i in range(n - 1, -1, -2)))
print(n)
Время: O(n). Память: O(n) для строки и собираемых результатов.