欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

反转字符串-力扣

程序员文章站 2022-05-21 08:43:42
...

均来自于力扣
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)明确循环终止条件