实现strStr
力扣 28. 实现 strStr()
题目说明
实现 strStr() 函数。
给你两个字符串
haystack和needle,请你在haystack字符串中找出needle字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回-1。当
needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当
needle是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。
注意:
- 本题中的空白字符只包括空格字符
' '。 - 除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。
- 提示:
0 <= haystack.length, needle.length <= 5 * 104haystack和needle仅由小写英文字符组成
示例
例1
1 | 输入:haystack = "hello", needle = "ll" |
例2
1 | 输入:haystack = "aaaaa", needle = "bba" |
例3
1 | 输入:haystack = "", needle = "" |
笔者理解
此题是一道字符串算法问题,在力扣题库中被定义为简单题。
解法
当笔者阅读完此题后,发现此题拥有多种解法,本文采用一种比较简单的匹配首字符方法,让我们来看看具体如何实现的吧。
实现
1 | public int strStr(String haystack, String needle) { |
时间和空间效率都还行,可见此解法还比较适合此题;
总结
本题是今天的每日一题,难度是为简单,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!








