0028 - Implement strStr()

0028 - 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's strstr() and Java's indexOf().

Examples:

Input: haystack = "hello", needle = "ll" Output: 2

Input: haystack = "aaaaa", needle = "bba" Output: -1

Input: haystack = "", needle = "" Output: 0

Constraints

0 <= haystack.length, needle.length <= 5 * 104 haystack and needle consist of only lower-case English characters.

Java Solution

class Solution {
    public int strStr(String haystack, String needle) {
        if(needle.length() == 0 || needle == null) return 0;
        if(haystack.length() < needle.length() || haystack == null) return -1;
        
        for(int i = 0; i <= haystack.length() - needle.length(); i++) {
            int j;
            for( j = 0; j < needle.length(); j++) {
                if(needle.charAt(j) != haystack.charAt(i + j)) break;
            }
            if(j == needle.length()) return i;   
        }
        return -1;
    }
}

Last updated