class Solution:
def maxLengthBetweenEqualCharacters(self, s: str) -> int:
n = len(s)
res = -1
for i in range(n):
for j in range(i + 1, n):
if s[i] == s[j]:
res = max(res, j - i - 1)
return resclass Solution:
def maxLengthBetweenEqualCharacters(self, s: str) -> int:
res = -1
firstIdx = {}
lastIdx = {}
for i, c in enumerate(s):
if c not in firstIdx:
firstIdx[c] = i
else:
lastIdx[c] = i
for c in lastIdx:
res = max(res, lastIdx[c] - firstIdx[c] - 1)
return resclass Solution:
def maxLengthBetweenEqualCharacters(self, s: str) -> int:
char_index = {} # char -> first index
res = -1
for i, c in enumerate(s):
if c in char_index:
res = max(res, i - char_index[c] - 1)
else:
char_index[c] = i
return resclass Solution:
def maxLengthBetweenEqualCharacters(self, s: str) -> int:
firstIdx = [-1] * 26
res = -1
for i, c in enumerate(s):
j = ord(c) - ord('a')
if firstIdx[j] != -1:
res = max(res, i - firstIdx[j] - 1)
else:
firstIdx[j] = i
return res