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.

Example 4:
Input: s = "cabbac"
Output: 4
Explanation: The optimal substring here is "abba". Other non-optimal substrings include "bb" and "".

Constraints:

  • 1 <= s.length <= 300
  • s contains only lowercase English letters.

Solution in python:

class Solution:
    def maxLengthBetweenEqualCharacters(self, s: str) -> int:
        adic = dict()
        bdic = dict()
        i = 0
        j = len(s)-1
        for i in range(len(s)):
            if s[i] not in adic.keys():
                adic[s[i]] = i 
        for j in range(len(s)-1, -1, -1):
            if s[j] not in bdic.keys():
                bdic[s[j]] = j
        max_value = -1
        for item in bdic.keys():
            if item in adic.keys():
                temp = bdic[item]-adic[item]-1
                if temp > max_value:
                    max_value = temp
        return max_value
最后修改日期: 2021年3月19日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。