# Solving Leetcode Interviews in Seconds with AI: Find the Index of the First Occurrence in a String


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "28" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.   Example 1:  Input: haystack = "sadbutsad", needle = "sad" Output: 0 Explanation: "sad" occurs at index 0 and 6. The first occurrence is at index 0, so we return 0.  Example 2:  Input: haystack = "leetcode", needle = "leeto" Output: -1 Explanation: "leeto" did not occur in "leetcode", so we return -1.    Constraints:  1 <= haystack.length, needle.length <= 104 haystack and needle consist of only lowercase English characters.  

	# Explanation
	Here's a breakdown of the approach and the Python code:

*   **High-Level Approach:**
    *   Iterate through the haystack string, checking for potential starting positions of the needle.
    *   At each potential starting position, compare the substring of haystack with the needle.
    *   Return the index of the first match found, otherwise return -1 if no match is found after iterating through the haystack string.

*   **Complexity Analysis:**
    *   Runtime Complexity: O(m\*n), where n is the length of the haystack and m is the length of the needle.
    *   Storage Complexity: O(1). We use constant extra space.

	
	# Code
	```python
	def strStr(haystack: str, needle: str) -> int:
    """
    Finds the index of the first occurrence of needle in haystack.

    Args:
        haystack: The string to search within.
        needle: The string to search for.

    Returns:
        The index of the first occurrence of needle in haystack, or -1 if not found.
    """

    n = len(haystack)
    m = len(needle)

    if m == 0:
        return 0

    for i in range(n - m + 1):
        if haystack[i:i+m] == needle:
            return i

    return -1
	```
			
