力扣刷题Day 9 | 28.实现 strStr(),459.重复的子字符串

28.实现 strStr()

题目链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

 

视频讲解

帮你把KMP算法学个通透!(理论篇)_哔哩哔哩_bilibili

帮你把KMP算法学个通透!(求next数组代码篇)_哔哩哔哩_bilibili

笔记

  1. 偷懒了,KMP算法留到下次学
  2. Python字符串的find(str)方法在字符串中查找str,如果能找到返回开始下标,找不到返回-1
  3. index(str)和find(str)一样,只不过如果str不在字符串中会报一个异常,需要在外面加try语句

Python代码

# find(str)方法

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        return haystack.find(needle)


# index(str)方法
class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        try:
            return haystack.index(needle)
        except ValueError:
            return -1


459.重复的子字符串

题目链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

视频讲解

字符串这么玩,可有点难度! | LeetCode:459.重复的子字符串_哔哩哔哩_bilibili

笔记

  1. KMP算法再次偷懒,下次学
  2. 另一个思路是:如果s是由重复子串构成,那么s+s中间一定能找出一个s,但要注意找中间s的时候要把s+s的首位字符去掉,否则就有可能找到原本的两个s。

Python代码

class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        double_s = s + s
        tmp = double_s[1:len(double_s)-1].find(s)
        if tmp == -1:
            return False
        else:
            return True
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值