Давайте рассмотрим 14-дневный учебный план LeetCode по взлому алгоритма.
Проблема
Напишите функцию, которая переворачивает строку. Входная строка задается как массив символов s
.
Вы должны сделать это, изменив входной массив на месте с 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"]
Ограничения:
1 <= s.length <= 105
s[i]
— это печатный ascii-символ.
Решение
Эта проблема решается с помощью двух указателей, которые перемещаются, меняя местами символы от начала до конца.
- создайте указатель left.
- создайте указатель right.
- перебирать все символы в s с помощью цикла while.
- создайте переменную temp, чтобы отслеживать смещаемый символ.
- поменяйте местами лево с право.
- символ справа становится temp.
- двигаться влево вперед.
- двигаться прямо назад.
Код
Удачного кодирования!