Легкий
Проблема
Напишите функцию, которая принимает строку в качестве входных данных и возвращает строку в обратном порядке.
Пример 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) дополнительного пространства.