方法一 直接遍历
保存每种字符首次出现的位置,再碰到这个字符时用它的当前位置减去首次出现的位置得到的长度与最大长度进行比较
var maxLengthBetweenEqualCharacters = function(s) {
const firstIndex = new Array(26).fill(-1);
let maxLength = -1;
for (let i = 0; i < s.length; i++) {
if (firstIndex[s[i].charCodeAt() - 'a'.charCodeAt()] < 0) {
firstIndex[s[i].charCodeAt() - 'a'.charCodeAt()] = i;
} else {
maxLength = Math.max(maxLength, i - firstIndex[s[i].charCodeAt() - 'a'.charCodeAt()] - 1);
}
}
return maxLength;
};
消耗时间和内存情况: