# Solving Leetcode Interviews in Seconds with AI: Maximum Length Substring With Two Occurrences


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "3090" 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 a string s, return the maximum length of a substring such that it contains at most two occurrences of each character.   Example 1:  Input: s = "bcbbbcba" Output: 4 Explanation: The following substring has a length of 4 and contains at most two occurrences of each character: "bcbbbcba". Example 2:  Input: s = "aaaa" Output: 2 Explanation: The following substring has a length of 2 and contains at most two occurrences of each character: "aaaa".   Constraints:  2 <= s.length <= 100 s consists only of lowercase English letters.  

	# Explanation
	Here's a solution to the problem, along with explanations and code:

*   **Sliding Window:** Use a sliding window approach to iterate through all possible substrings of `s`.
*   **Character Count Tracking:** Maintain a dictionary to track the frequency of each character within the current window.
*   **Validity Check:** For each window, check if the count of every character is at most 2. If it is, update the maximum length found so far.

*   **Runtime Complexity:** O(n^2), where n is the length of the string `s`. **Storage Complexity:** O(1), because the character set is limited to lowercase English letters, meaning the size of the dictionary is bounded.

	
	# Code
	```python
	def longest_substring_with_at_most_two_occurrences(s):
    """
    Finds the maximum length of a substring such that it contains at most two occurrences of each character.

    Args:
        s: The input string.

    Returns:
        The maximum length of the substring.
    """

    max_len = 0
    for i in range(len(s)):
        for j in range(i, len(s)):
            substring = s[i:j+1]
            char_counts = {}
            valid = True
            for char in substring:
                char_counts[char] = char_counts.get(char, 0) + 1
                if char_counts[char] > 2:
                    valid = False
                    break

            if valid:
                max_len = max(max_len, len(substring))

    return max_len
	```
			
