力扣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
相关推荐
王琦031812 小时前
Python 函数详解
开发语言·python
胡伯来了12 小时前
13. Python打包工具- setuptools
开发语言·python
2301_8002561112 小时前
地理空间数据库中的CPU 和 I/O 开销
数据库·算法·oracle
小鸡吃米…12 小时前
Python 中的多层继承
开发语言·python
deng-c-f12 小时前
Linux C/C++ 学习日记(53):原子操作(二):实现shared_ptr
开发语言·c++·学习
中國移动丶移不动12 小时前
Python MySQL 数据库操作完整示例
数据库·python·mysql
落叶,听雪12 小时前
AI建站推荐
大数据·人工智能·python
ZAz_12 小时前
DAY 45 预训练模型
python
一个不知名程序员www12 小时前
算法学习入门---结构体和类(C++)
c++·算法
旖旎夜光13 小时前
Linux(3)(下)
linux·学习