[String]28. Implement strStr()

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

Clarification:

What should we return when needle is an empty string? This is a great question to ask during an interview.

For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C'sstrstr() and Java'sindexOf().


class Solution {

    public int strStr(String ss, String pp) {

        int n = ss.length(), m = pp.length();

        char[] s = ss.toCharArray(), p = pp.toCharArray();

        // 枚举原串的「发起点」

        for (int i = 0; i <= n - m; i++) {

            // 从原串的「发起点」和匹配串的「首位」开始,尝试匹配

            int a = i, b = 0;

            while (b < m && s[a] == p[b]) {

                a++;

                b++;

            }

            // 如果能够完全匹配,返回原串的「发起点」下标

            if (b == m) return i;

        }

        return -1;

    }

}

作者:AC_OIer

链接:https://leetcode-cn.com/problems/implement-strstr/solution/shua-chuan-lc-shuang-bai-po-su-jie-fa-km-tb86/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容