Leetcode 28.实现 strStr()
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情
1、题目
实现 strStr() 函数。
给你两个字符串 haystack 和 needle ,请你在 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 * 104haystack和needle仅由小写英文字符组成
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基础算法题》欢迎订阅❤️
厂长写博客目的初衷很简单,希望大家在学习的过程中少走弯路,多学一些东西,对自己有帮助的留下你的赞赞👍或者关注➕都是对我最大的支持,你的关注和点赞给厂长每天更文的动力。
对文章其中一部分不理解,都可以评论区回复我,我们来一起讨论,共同学习,一起进步!