LeetCode28-实现strStr()

昨天晚上睡觉前逛知乎时,发现我开设的这个LeetCode刷题专栏突然之间暴增了四十多号人,说实话,当时很激动了,因为觉得自己每天写的东西被大家肯定了,被相信的感觉还是挺好的。另外又觉得身上的责任感又重了一些,因为大家相信你,如果你写的东西将大家带入了歧途,那这真是罪过了。尤其是昨天和一笔友交流算法时,他给我提建议说:我以后贴的代码可以多加些注释,这样大家看起来就不会晕了,尤其是当你的代码比较多时。我觉得很有道理,各位笔友愿意抽出时间来看我写的东西,我觉得得对得起大家,所以我以后会尽可能的将我的代码写详细些。


28-实现strStr()

实现 strStr() 函数。

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

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2

示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1

说明:

当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。

这一题我觉得很很很简单了,在python中直接用str.index()这个方法就可查找出needle子串在haystack母串中出现的位置,需要注意的就是如果haystack母串中没有needle子串,那么用index()方法此时就会报错,所以用个if条件语句判断一下就行了。

代码如下:

class Solution:
    # 直接采用index()方法可查找出needle子串在haystack子串中出现的位置
    def strStr(self, haystack, needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        if needle is None:
            return 0
        if needle in haystack:
            return haystack.index(needle)
        else:
            return -1


if __name__ == "__main__":
    haystack = "aaaaaa"
    needle = "bba"
    loc = Solution().strStr(haystack, needle)
    print(loc)

执行效率也是没得话说了,在90%以上。

 

猜你喜欢

转载自blog.csdn.net/weixin_36431280/article/details/84614181