# Solving Leetcode Interviews in Seconds with AI: Distinct Echo Substrings


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1316" 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
	> Return the number of distinct non-empty substrings of text that can be written as the concatenation of some string with itself (i.e. it can be written as a + a where a is some string).   Example 1:  Input: text = "abcabcabc" Output: 3 Explanation: The 3 substrings are "abcabc", "bcabca" and "cabcab".  Example 2:  Input: text = "leetcodeleetcode" Output: 2 Explanation: The 2 substrings are "ee" and "leetcodeleetcode".    Constraints:  1 <= text.length <= 2000 text has only lowercase English letters.  

	# Explanation
	Here's the approach, complexity analysis, and Python code for solving this problem:

*   **Iterate and Check:** Iterate through all possible substring lengths and starting positions within the input string `text`. For each substring, check if its length is even and if the first half is equal to the second half.
*   **Store Unique Substrings:** Use a set to store the distinct repeating substrings found to avoid counting duplicates.
*   **Return Count:** Finally, return the size of the set, which represents the number of distinct repeating substrings.

*   **Runtime Complexity:** O(n^3), where n is the length of the input string.
*   **Storage Complexity:** O(n), where n is the length of the input string (in the worst case, the set could store n/2 repeating substrings).

	
	# Code
	```python
	def distinct_echo_substrings(text: str) -> int:
    """
    Finds the number of distinct non-empty substrings of text that can be written as the concatenation of some string with itself (i.e. it can be written as a + a where a is some string).

    Example 1:
    Input: text = "abcabcabc"
    Output: 3
    Explanation: The 3 substrings are "abcabc", "bcabca" and "cabcab".

    Example 2:
    Input: text = "leetcodeleetcode"
    Output: 2
    Explanation: The 2 substrings are "ee" and "leetcodeleetcode".

    Args:
        text (str): The input string.

    Returns:
        int: The number of distinct repeating substrings.
    """

    distinct_substrings = set()
    n = len(text)

    for length in range(2, n + 1, 2):  # Iterate through even lengths only
        for i in range(n - length + 1):
            substring = text[i:i + length]
            half_length = length // 2
            first_half = substring[:half_length]
            second_half = substring[half_length:]

            if first_half == second_half:
                distinct_substrings.add(substring)

    return len(distinct_substrings)
	```
			
