力扣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
相关推荐
今儿敲了吗2 分钟前
python基础学习笔记第六章——函数进阶
笔记·python·学习
Yzzz-F12 分钟前
Problem - 2194E - Codeforces
算法
像污秽一样12 分钟前
算法设计与分析-习题12.2
算法·迭代改进·分支界限
x_xbx19 分钟前
LeetCode:83. 删除排序链表中的重复元素
算法·leetcode·链表
码码哈哈0.031 分钟前
LangChain 快速入门(从0到可用)
开发语言·python·langchain
_小草鱼_38 分钟前
【搜索与图论】DFS算法(深度优先搜索)
算法·深度优先·图论·回溯·递归
2301_7765087242 分钟前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
熊文豪1 小时前
Java 入门指南
开发语言·python
敲代码的嘎仔1 小时前
Java后端面试——SSM框架面试题
java·面试·职场和发展·mybatis·ssm·springboot·八股
带娃的IT创业者1 小时前
WeClaw 日志分析实战:如何从海量日志中快速定位根因?
运维·python·websocket·jenkins·fastapi·架构设计·实时通信