# 344. 反转字符串

TIP

相关标签: 字符串 | 双指针

# 题目

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

示例 1:

输入:

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

输出:

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

示例 2:

输入:

["H","a","n","n","a","h"]

输出:

["h","a","n","n","a","H"]

# 解题思路

# 解法

只需将数组的第一项与最后一项;第二项与倒数第二项。。。等的值进行交换。

# 代码

/**
 * @param {string[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
const reverseString = (s) => {
  for (let i = 0, j = s.length - 1; i < j;) {
    // const temp = s[i];
    // s[i] = s[j];
    // s[j] = temp;
    [s[i], s[j]] = [s[j], s[i]];
    i++;
    j--;
  }
};

# 时间复杂度

O(n)

# 空间复杂度

O(1)

Last Updated: 10/14/2020, 4:32:06 PM