【数据结构与算法】力扣 344. 反转字符串

题目描述

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

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

示例 1:

复制代码
输入: s = ["h","e","l","l","o"]
输出: ["o","l","l","e","h"]

示例 2:

复制代码
输入: s = ["H","a","n","n","a","h"]
输出: ["h","a","n","n","a","H"]

提示:

  • 1 <= s.length <= 105
  • s[i] 都是 ASCII 码表中的可打印字符

分析解答

题目不让使用额外的数组分配空间,只能原地操作。

那就要双指针交换了。来呗,弄!😎

js 复制代码
/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function (s) {
    let l = 0
    let r = s.length - 1
    while (l < r) {
        [s[l], s[r]] = [s[r], s[l]]
        l++
        r--
    }
};

思路拓展

相关推荐
闪电悠米11 分钟前
力扣hot100-54.螺旋矩阵-模拟边界控制详解
算法·leetcode·矩阵
变量未定义~19 分钟前
虚拟节点-星石传送阵(4星)、强连通分量
数据结构·算法
IT方大同38 分钟前
C语言分支与循环语句
c语言·开发语言·算法
思-无-涯1 小时前
测试面试新趋势:工程思维成关键
人工智能·功能测试·测试工具·职场和发展·可用性测试
待磨的钝刨1 小时前
深入理解主成分分析(PCA)
人工智能·线性代数·算法·机器学习
geovindu2 小时前
java: Backtracking Algorithm
java·开发语言·windows·后端·算法·回溯算法
晚风叙码3 小时前
C++ vector底层模拟实现与迭代器失效深度剖析
c++·算法
To_OC11 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_8414956411 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥