PRO

Напишите функцию для переворота строки

Переворот строки означает получение новой строки с символами в обратном порядке. В Python краткий вариант использует срез [::-1]; реализация через цикл показывает понимание алгоритма и имеет временную сложность O(n).
Подробный ответ

Решение через срез

def reverse_string(value: str) -> str:
    return value[::-1]

Срез [::-1] создаёт новую строку, проходя по исходной справа налево.

Решение через цикл

def reverse_string(value: str) -> str:
    result = []

    for character in value:
        result.append(character)

    result.reverse()
    return ''.join(result)

Решение через два указателя

Если на собеседовании хотят увидеть именно алгоритм, можно преобразовать строку в список и менять символы с концов.

def reverse_string(value: str) -> str:
    characters = list(value)
    left = 0
    right = len(characters) - 1

    while left < right:
        characters[left], characters[right] = characters[right], characters[left]
        left += 1
        right -= 1

    return ''.join(characters)

Пример

print(reverse_string('hello'))
# olleh

Сложность

Все варианты проходят по строке, поэтому временная сложность составляет O(n). Дополнительная память также обычно O(n), потому что строки в Python неизменяемы и для результата создаётся новый объект.

Как ответить на собеседовании

В Python могу использовать value[::-1], но если нужно показать алгоритм, применяю два указателя: меняю символы на левой и правой границе, двигая указатели навстречу. Временная сложность решения — O(n).

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге