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: 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.
Solution in python:
class Solution:
def maxLengthBetweenEqualCharacters(self, s: str) -> int:
adic = dict()
bdic = dict()
i = 0
j = len(s)-1
for i in range(len(s)):
if s[i] not in adic.keys():
adic[s[i]] = i
for j in range(len(s)-1, -1, -1):
if s[j] not in bdic.keys():
bdic[s[j]] = j
max_value = -1
for item in bdic.keys():
if item in adic.keys():
temp = bdic[item]-adic[item]-1
if temp > max_value:
max_value = temp
return max_value
留言