## 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`

.

A **substring** is a contiguous sequence of characters within a string.

**Example 1:**

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

.

**Example 2:**

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

**Example 3:**

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

**Example 4:**

Input:s = "cabbac"Output:4Explanation: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).