题目描述:
给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。
题解:
public int maxLengthBetweenEqualCharacters(String s) {
int[] index = new int[26];
Arrays.fill(index, -1);
int n = s.length();
int maxLength = -1;
for (int i = 0; i < n; i++) {
if (index[s.charAt(i) - 'a'] < 0) {
index[s.charAt(i) - 'a'] = i;
} else {
maxLength = Math.max(maxLength, i - index[s.charAt(i) - 'a'] - 1);
}
}
return maxLength;
}