1624. Largest Substring Between Two Equal Characters

Difficulty:
Related Topics:
Similar Questions:

    Problem

    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.
    

      Constraints:

    Solution

    /**
     * @param {string} s
     * @return {number}
     */
    var maxLengthBetweenEqualCharacters = function(s) {
        var leftPosMap = Array(26);
        var rightPosMap = Array(26);
        var a = 'a'.charCodeAt(0);
        for (var i = 0; i < s.length; i++) {
            var j = s[i].charCodeAt(0) - a;
            if (leftPosMap[j] === undefined) leftPosMap[j] = i;
            rightPosMap[j] = i;
        }
        var max = -1;
        for (var m = 0; m < 26; m++) {
            if (leftPosMap[m] !== rightPosMap[m]) {
                max = Math.max(max, rightPosMap[m] - leftPosMap[m] - 1);
            }
        }
        return max;
    };
    

    Explain:

    nope.

    Complexity: