Leetcode 28.实现 strStr()

130 阅读2分钟

Leetcode 28.实现 strStr()

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

1、题目

实现 strStr() 函数。

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

说明

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

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

示例 1:

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

示例 2:

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

示例 3:

输入:haystack = "", needle = ""
输出:0

提示:

  • 0 <= haystack.length, needle.length <= 5 * 104
  • haystackneedle 仅由小写英文字符组成

2、思路

看到题目中的nums = [2,2,0,0],也会被视作正确答案。

首先想到的就是将被查找的数组用0替换,但是这样的思路是不能全部通过的,我们还发现了,举一个例子nums = [3,2,2,3]

在被0替换之后的数组为nums = [0,2,2,0]这样返回的数组结果就为nums = [0,2]和实例输出结果就不一样了

接着我们就继续用排序算法对得到的数组通过由大到小进行排序,我们就发现全部测试用例通过!

废话少说 ~~~~~ 上代码!

3、代码

class Solution {
    public int strStr(String haystack, String needle) {
        return haystack.indexOf(needle);
    }
}

4、总结

该题目是比较基础的算法题,对于数组的考察,此题要熟悉八大排序算法之后才能进行熟练刷题!

❤️‍来自专栏《LeetCode基础算法题》欢迎订阅❤️‍

厂长写博客目的初衷很简单,希望大家在学习的过程中少走弯路,多学一些东西,对自己有帮助的留下你的赞赞👍或者关注➕都是对我最大的支持,你的关注和点赞给厂长每天更文的动力。

对文章其中一部分不理解,都可以评论区回复我,我们来一起讨论,共同学习,一起进步!

原题链接 28. 实现 strStr() - 力扣(LeetCode)