[LeetCode]--28. Implement strStr()

简介: Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.就是找到子串第一次出现的 位置。public int strStr(String haystack, String n

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

就是找到子串第一次出现的 位置。

public int strStr(String haystack, String needle) {
        if (haystack == null || needle == null) {
            return -1;
        }

        for (int i = 0; i < haystack.length() - needle.length() + 1; i++) {
            int j = 0;
            for (j = 0; j < needle.length(); j++) {
                if (haystack.charAt(i + j) != needle.charAt(j)) {
                    break;
                }
            }
            // finished loop, target found
            if (j == needle.length()) {
                return i;
            }
        }
        return -1;
    }

这个题我就卡在最后一句判断if (j == needle.length())上,我最开始就一直认为j == needle.length()-1才是对的,因为我觉得j是下标嘛,从0开始的,应该少一次才对,其实仔细想想,for循环结束的条件就是j++之后不再小于needle.length()。所以这里应该是j == needle.length()这个没有问题。

目录
相关文章
|
7月前
|
算法 C++ 索引
leetcode-28:实现 strStr()(字符串匹配,暴力匹配算法和KMP算法)
leetcode-28:实现 strStr()(字符串匹配,暴力匹配算法和KMP算法)
81 0
|
2月前
【LeetCode 21】28. 实现 strStr()
【LeetCode 21】28. 实现 strStr()
34 0
|
6月前
|
SQL 算法 数据可视化
Leetcode第28题:实现 strStr()【python】
Leetcode第28题:实现 strStr()【python】
LeetCode-28 实现strStr() KMP算法的学习
LeetCode-28 实现strStr() KMP算法的学习
|
算法 安全 Java
LeetCode - #28 实现 strStr()
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
算法 Java C语言
leetcode:28.实现strStr()
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
79 0
leetcode 28 找出字符串第一个匹配的下标(KMP实现strStr)
leetcode 28 找出字符串第一个匹配的下标(KMP实现strStr)
91 0
leetcode 28 找出字符串第一个匹配的下标(KMP实现strStr)
|
存储 前端开发 算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
165 0
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
|
存储
LeetCode 232. Implement Queue using Stacks
使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。
79 0
LeetCode 232. Implement Queue using Stacks
LeetCode 225. Implement Stack using Queues
使用队列实现栈的下列操作: push(x) -- 元素 x 入栈; pop() -- 移除栈顶元素; top() -- 获取栈顶元素; empty() -- 返回栈是否为空
84 0
LeetCode 225. Implement Stack using Queues