LeetCode 1624. Largest Substring Between Two Equal Characters



Given a string s, return the length of the longest substring between two equal characters, excluding the two characters. If there is no such substring return -1.

substring is a contiguous sequence of characters within a string.

Example 1:

Input: s = "aa"
Output: 0
Explanation: The optimal substring here is an empty substring between the two 'a's.

Example 2:

Input: s = "abca"
Output: 2
Explanation: The optimal substring here is "bc".

Example 3:

Input: s = "cbzxy"
Output: -1
Explanation: There are no characters that appear twice in s.

Example 4:

Input: s = "cabbac"
Output: 4
Explanation: The optimal substring here is "abba". Other non-optimal substrings include "bb" and "".


  • 1 <= s.length <= 300
  • s contains only lowercase English letters.


The longest substring is between the character’s first occurrence and the last occurrence.

Python Solution

class Solution:
    def maxLengthBetweenEqualCharacters(self, s: str) -> int:
        longest = -1
        visited = {}
        for i, c in enumerate(s):
            if c in visited:
                longest = max(longest, i - visited[c] - 1)
                visited[c] = i
        return longest
  • Time Complexity: O(N).
  • Space Complexity: O(N).

Leave a Reply

Your email address will not be published. Required fields are marked *