我是靠谱客的博主 潇洒水池,最近开发中收集的这篇文章主要介绍LeetCode-实现strStr(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

题目:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-strstr
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

看完这题目,发现:这不就是indexOf()吗?HaHa~ SoEasy~????

Coding~

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

但是吧,觉得这个解法是不是太水了????,然后“本着尊重出题者”的心态,静下心来,从出题者的想法出发,分析一波:

解题思路:
题目简单来说就是在 haystack 字符串中找出 needle(目标字符串)出现的第一个位置。

以needle的长度作为基准,每次从haystack字符串截取出needle.length()个字符,进行对比,遇到相同的返回i,直到遍历到haystack.length()-needle.length()为止没有发现相同的子字符串,那么如题返回-1即可。

Coding~

//needle长度
int nlen = needle.length();
//haystack长度
int hlen = haystack.length();
for(int i = 0 ; i <= hlen-nlen ; i++){
    //截取haystack中needle长度的字符串,与needle比较,相等返回i
    String substring = haystack.substring(i, i + nlen);
    if (substring.equals(needle)) return i;
}
return -1;

我们测试一下吧~

public static void main(String[] args) {
    String haystack = "aaaaa";
    String needle = "bba";
    strStr strStr = new strStr();
    int i = strStr.strStr(haystack, needle);
    System.out.println(i);
}

截图留念~
在这里插入图片描述

最后

以上就是潇洒水池为你收集整理的LeetCode-实现strStr()的全部内容,希望文章能够帮你解决LeetCode-实现strStr()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部