leetcode算法入门14天-第4天(双指针)

344.反转字符串

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        for i in range(len(s)//2):
            s[i],s[len(s)-1-i]=s[len(s)-1-i],s[i]

 思路:寻找对称轴,交换数组中对称的。

如len(s)==4,交换s[0]和s[3];s[1]和s[2]

如len(s)==5,交换s[0]和s[4];s[1]和s[3];s[2]和自己交换(当然可以分奇偶,但是为了代码简便就这样,对时间复杂度和空间复杂度没什么影响)

557. 反转字符串中的单词III

【注】区别于344。344给的是字符数组,而557需要把字符串转化为字符数组,然后转变成字符串。

class Solution:
    def reverseWords(self, s: str) -> str:
        return ' '.join(s.split()[::-1])[::-1]

 思路:

1.s.split()  这是把s字符串转化为字符数组。变成['Let's','take','Leetcode','contest']

2.s.split()[::-1]  这是把字符数组倒序。变成['contest','Leetcode','take','Let's']

3.' '.join(s.split()[::-1])  这是把字符数组变成字符串,用' '(空格联接)变成['contest Leetcode take Let's']

4.' '.join(s.split()[::-1])[::-1]  这是把字符串倒过来,即变成['s'teL ekat edocteeL tsetnoc']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值