# LeetCode 1624. Largest Substring Between Two Equal Characters

## Description

https://leetcode.com/problems/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 "".
```

Constraints:

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

## Explanation

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)
else:
visited[c] = i

return longest

``````
• Time Complexity: O(N).
• Space Complexity: O(N).