
Problem
Solution
Submissions
First Occurrence of Substring
Certification: Basic Level
Accuracy: 0%
Submissions: 0
Points: 5
Write a C program to implement the strStr() function. Given two strings haystack and needle, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Note: For the purpose of this problem, when needle is an empty string, the function should return 0. This is consistent with C's strstr() and Java's indexOf().
Example 1
- Input: haystack = "hello", needle = "ll"
- Output: 2
- Explanation:
Step 1: Compare "he" with "ll". No match.
Step 2: Compare "el" with "ll". No match.
Step 3: Compare "ll" with "ll". Match found.
Step 4: The starting index of the match is 2.
Example 2
- Input: haystack = "aaaaa", needle = "bba"
- Output: -1
- Explanation:
Step 1: Compare "aaa" with "bba". No match.
Step 2: Compare "aaa" with "bba". No match.
Step 3: Compare "aa" with "bba". No match.
Step 4: No match found in the entire haystack.
Step 5: Return -1.
Constraints
- 0 ≤ haystack.length, needle.length ≤ 5 * 10^4
- haystack and needle consist of only lowercase English characters
- Time Complexity: O(n * m) for the naive approach, where n is the length of haystack and m is the length of needle
- Space Complexity: O(1), constant extra space
Editorial
My Submissions
All Solutions
| Lang | Status | Date | Code |
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code |
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use the naive approach: check for the needle at each position of the haystack
- Implement a more efficient algorithm like Knuth-Morris-Pratt (KMP) or Boyer-Moore
- Use a sliding window approach to iterate through the haystack
- For each position in the haystack, check if the substring starting at that position matches the needle
- Take advantage of early termination when a mismatch is found