【LeetCode数据结构04】字符串String

ForHHeart / 2023-05-13 / 原文

Table of Contents

双指针

  • 344. 反转字符串

  • 541. 反转字符串II

  • 剑指Offer05. 替换空格

  • 151. 翻转字符串里的单词

  • 剑指Offer58-II. 左旋转字符串

KMP

  • 28. 实现strStr

  • 459. 重复的子字符串

Solutions

344. 反转字符串

力扣题目链接

思路

代码


541. 反转字符串II

力扣题目链接

思路

代码


剑指Offer05. 替换空格

力扣题目链接

思路

代码

class Solution:
    def replaceSpace(self, s: str) -> str:
        # 统计空格数量
        count = s.count(' ')
        # 将字符串转换为数组方便操作,扩大数组大小
        result = list(s)
        result.extend([' '] * count * 2)
        # 初始化左右指针
        left = len(s) - 1
        right = len(result) - 1
        # 双指针开始从后向前移动
        while left >= 0:
            if result[left] != ' ':
                result[right] = result[left]
                right -= 1
            else:
                result[right-2:right+1] = '%20'
                right -= 3
            left -= 1
        return ''.join(result) # 'sep'.join() 用新的分隔符连接任意数量的字符串,返回新的字符串

151. 翻转字符串里的单词

力扣题目链接

思路

代码


剑指Offer58-II. 左旋转字符串

力扣题目链接

思路

代码


28. 实现strStr

力扣题目链接

思路

代码


459. 重复的子字符串

力扣题目链接

思路

代码