代码随想录Day8 字符串


LeetCode 344.反转字符串

题目链接:反转字符串
在这里插入图片描述
这题使用双指针可以解决,或者使用python自带的reverse函数解决。

双指针

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        left, right = 0, len(s) - 1
        
        # 该方法已经不需要判断奇偶数,经测试后时间空间复杂度比用 for i in range(right//2)更低
        # 推荐该写法,更加通俗易懂
        while left < right:
            s[left], s[right] = s[right], s[left]
            left += 1
            right -= 1

一行代码解决

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        s[:] = s[::-1]#这个意思是取s得逆序
        return s

541. 反转字符串II

反转字符串II
在这里插入图片描述
这题是上一题的拓展,需要思考,调用上面的函数。具体讲解见:反转字符串II

def reverseStr( s: str, k: int):
    def reverse_str(a):
        left,right =0,len(a)-1
        while left < right :
            a[left],a[right]=a[right],a[left]
            left+=1
            right-=1
            return a
    res=list(s)
    for i in range(0,len(s),2*k):
        res[i:i+k]=reverse_str(res[i:i+k])
    return ''.join(res)

要注意for i in range(0,len(s),2*k) 这里假如k=1 i 则为0,4,....

其他题目

因为其他题目可以直接用内置函数解决,则不详细写答案了。题目如下:
剑指 Offer 05. 替换空格

class Solution:
    def replaceSpace(self, s: str) -> str:
        res=s.replace(' ','%20')
        return res

151. 反转字符串中的单词

class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.strip()
        s = s.split()
        s.reverse()
        s = ' '.join(s)
        return s

剑指 Offer 58 - II. 左旋转字符串

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        res = s[n:]+s[:n]
        return res

以上题目参考文章

文章连接:Python关于去除字符串中空格的方法

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值