LeetCode 28.Implement strStr()-python(easy)

题目来源:

     https://leetcode.com/problems/implement-strstr/description/

题目分析:

      输入两个字符串haystack和needle,如果needle是haystack的一个子串,那么返回这个子串在haystack出现的第一个位置,否则返回-

解决代码:

     一开始看到这个题目,脑海出来的就是“in”和“not in”的用法,后来在如何找到下标那遇到问题。看到别人有用到.index()函数,解决问题。

      先来解释一下index()函数的相关用法。http://www.runoob.com/python/att-string-index.html

      具体来说,它用来检测字符串中是否包括子串。如果包括的话,返回子串开始的索引,否则抛出异常。

      则我解决的代码为:

class Solution:
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        if needle in haystack:
            return haystack.index(needle)
        else:
            return (-1)

     除此以外,还可以暴力检索。将needle看成一个整体,一块一块的去比较,如果有,返回下标i,否则返回-1.

class Solution:
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        for i in range(len(haystack)-len(needle)+1):
            if(haystack[i:i+len(needle)]==needle):
                return i
      
        return -1 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值