力扣344.反转字符串 练习理解

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

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

示例 1:

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

思路:

简单来说就是换个顺序,采用双指针的办法left从左往右移动,right 从右向左移动

那么只需要考虑什么时候结束循环

考虑是奇数长度还是偶数长度,

1.对于奇数长度 s[left],s[right-1];

s[left+1],s[right-2], left+right-1恰好被2整除刚好循环结束。

2.对于偶数来说最后循环的是s[n/2-1]和s[n/2],下一次各移动一次s[n/2]和s[n/2-1]退出循环即可

复制代码
class Solution:
    def reverseString(self,s:List[str])->None:
        left=0
        right=len(s)-1
        while left<right:
            s[left],s[right]=s[right],s[left]
            left+=1
            right-=1
        return s
相关推荐
晓1313几秒前
第六章 【C语言篇:结构体&位运算】 结构体、位运算全面解析
c语言·算法
iAkuya6 分钟前
(leetcode)力扣100 61分割回文串(回溯,动归)
算法·leetcode·职场和发展
梵刹古音9 分钟前
【C语言】 指针与数据结构操作
c语言·数据结构·算法
kjkdd11 分钟前
6.1 核心组件(Agent)
python·ai·语言模型·langchain·ai编程
VT.馒头15 分钟前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
小镇敲码人18 分钟前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
萧鼎19 分钟前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
AI视觉网奇32 分钟前
3d数字人 ue blender 绑定衣服对齐 2026
学习·ue5
Nan_Shu_61436 分钟前
学习: Blender 基础篇
学习·blender
源代码•宸39 分钟前
大厂技术岗面试之谈薪资
经验分享·后端·面试·职场和发展·golang·大厂·职级水平的薪资