Дана строка как массив символов. Разверните её in-place с O(1) доп. памяти.
Примеры
Пример 1
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Пример 2
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
Решение
Решение
var reverseString = function(s) { s.reverse();};
Решение 2 (For)
var reverseString = function(s) { for (let i = 0; i < s.length / 2; i++) { const index = s.length - 1 - i; [s[i], s[index]] = [s[index], s[i]]; }};
Решение 3 (Two Pointers)
/** * Временная сложность: O(N) (проходим половину массива) * Пространственная сложность: O(1) */var reverseString = function(s) { let left = 0; let right = s.length - 1; while (left < right) { // Меняем местами элементы (деструктуризация ES6) [s[left], s[right]] = [s[right], s[left]]; left++; right--; } // Функция ничего не возвращает, меняет s in-place};