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

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

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

示例 1:

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

思路:

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

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

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

1.对于奇数长度 sleft,sright-1;

sleft+1,sright-2, left+right-1恰好被2整除刚好循环结束。

2.对于偶数来说最后循环的是sn/2-1和sn/2,下一次各移动一次sn/2和sn/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
相关推荐
青山木几秒前
Hot 100 --- LRU 缓存
java·数据结构·算法·leetcode·链表·缓存·哈希
“码”力全开1 分钟前
ONVIF摄像头接入项目实战记录
人工智能·算法·边缘计算
冰暮流星4 分钟前
flask之app.py讲解
后端·python·flask
大气的小蜜蜂5 分钟前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·qt·sqlite
小心亦新7 分钟前
STM32学习10---串口
stm32·嵌入式硬件·学习
十月的皮皮13 分钟前
C语言学习学习笔记20260704-中缀表达式求值(双栈法)
c语言·笔记·学习
星夜夏空9914 分钟前
C++学习(3) —— C++输入输出流
c++·学习
子建莫敌20 分钟前
ROS2 面试总结
面试·职场和发展
AI科技星29 分钟前
公理化数学化学|48小时确权终稿(完整投产包)
人工智能·数学·算法·重构·拓扑学·乖乖数学·全域数学
星夜夏空9939 分钟前
C++学习(1) ——C与C++
c语言·c++·学习