Легкий

Проблема

Напишите функцию, которая принимает строку в качестве входных данных и возвращает строку в обратном порядке.

Пример 1:

Input: "hello"
Output: "olleh"

Пример 2:

Input: "A man, a plan, a canal: Panama"
Output: "amanaP :lanac a ,nalp a ,nam A"

Решение

Итерировать строковый символ, пока не встретите средний элемент.

Отмечено, что мы можем использовать XOR для подкачки, если не разрешено использовать встроенную функцию подкачки.

# XOR swap
a = a ^ b
b = a ^ b = (a ^ b) ^ b = a
a = a ^ b = (a ^ b) ^ a = b

Сложность

For будет завершен после обнаружения среднего элемента, что занимает O (n/2) времени, если n обозначает длину строки. Следовательно, временная сложность составляет O(n).

И он использует только O(1) дополнительного пространства.