Sponsored
Sponsored
This approach uses a hash map to store the first and last occurrence of each character as you traverse the string. For each character, calculate the distance between its occurrences and keep track of the maximum distance found. This efficiently provides the length of the longest substring between two identical characters.
Time Complexity: O(n) where n is the length of the string.
Space Complexity: O(1) since the hash map size is constant (fixed at 256 for all possible lowercase characters).
1def maxLengthBetweenEqualCharacters(s: str) -> int:
2 first_occurrence = {}
3 max_len = -1
4 for i, char in enumerate(s):
5 if char not in first_occurrence:
6 first_occurrence[char] = i
7 else:
8 max_len = max(max_len, i - first_occurrence[char] - 1)
9 return max_len
10
11s = "abca"
12result = maxLengthBetweenEqualCharacters(s)
13print(result)
This Python function also employs a dictionary to store character first occurrences. It computes the longest substring by the difference of current and first indices for repeated characters, minus one.
JavaScript code implements a similar process by using objects for first and last occurrence tracking, performing substring length calculations to determine the largest possible value.