均来自于力扣
https://leetcode-cn.com/problems/reverse-string/
题目:
反转字符串
O(1) 原地反转
第一思路:
(1)使用栈,先让数组进行输入
(2)top出栈,逆序弹出
python3:
栈如何设置?
如何输入?如何输出?
def reverself (self, s:List[int])->:None:
输入-循环:
进入栈;
i+1;
弹出栈
第二思路:
python3-双指针:
(1) 设置两个指针left right 分别指向数组头部和尾部
(2) left从左向右移动 right从右向左移动 每移动一次 互相交换字符
(3)当left和right的指针所指字符相同时,即可换也可不换
class Solution:
def reverseString(self, s: List[str]) -> None:
int left*, right*
left=s[0] #左指针
right=s[-1] #右指针
for i in len(s): #不断移动
t=s.left
s.left[value]=s.right[value]
s.right=t
left++;
right--;
改正:
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
改正代码参考于
https://leetcode-cn.com/problems/reverse-string/solution/344-fan-zhuan-zi-fu-chuan-shuang-zhi-zhen-by-yiluo/
- 知识盲点
(1)s[left] 和s.[left]的不同之处?? - 改正点
(1)学会定义指针 运用指针
(2)明确循环终止条件