编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 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