leetcode

简单递归双指针字符串

方法1 reverse

  1. var reverseString = function (s) {
  2. return s.reverse();
  3. };

image.png
参考资料
mdn Array.prototype.reverse():链接

方法2 双指针

  1. var reverseString = function (s) {
  2. let l = 0, r = s.length - 1;
  3. while (l < r) {
  4. [s[l], s[r]] = [s[r], s[l]];
  5. l++; r--;
  6. }
  7. };

image.png

**["h","e","l","l","o"]**

344. 反转字符串 - 图3

方法3 递归

  1. var reverseString = function (s) {
  2. const swap = (l, r) => {
  3. if (l >= r) return;
  4. [s[l], s[r]] = [s[r], s[l]];
  5. swap(++l, --r);
  6. }
  7. swap(0, s.length - 1);
  8. };

image.png

注解
原理和「方法2」相同

⚠️
swap(++l, --r)
swap(l++, r--)