Leetcode——strStr()——python3

# 实现strStr()
# 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。


class Solution(object):
    def str_str(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """


        # 方法一:
        # if needle not in haystack:
        #     return -1
        # return haystack.find(needle)
        # find()方法检测字符串中是否包含子字符串 str,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
        # str.find(str, beg=0, end=len(string))
        # str -- 指定检索的字符串
        # beg -- 开始索引,默认为0。
        # end -- 结束索引,默认为字符串的长度。


        # 方法二:
        l = len(needle)
        for i in range(len(haystack) - l + 1):   # 目标needle字符串的长度在haystack字符串中比较需要多少次
            if haystack[i:i + l] == needle:   # 如:i = 0 haystack[0:2] 其实按索引来只取了0和1
                return i   # 返回索引
        return -1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值