https://leetcode.com/problems/largest-substring-between-two-equal-characters/description/ Easy

Условие

Дана строка s, состоящая из строчных английских букв. Нужно найти два одинаковых символа в строке такие, что количество символов между ними максимально. Вернуть это максимальное количество. Если ни один символ не встречается дважды, вернуть -1.

Решение

class Solution {
    fun maxLengthBetweenEqualCharacters(s: String): Int {
        val first = IntArray(26) { -1 }
        var ans = -1
        for (i in s.indices) {
            val c = s[i] - 'a'
            if (first[c] == -1) first[c] = i
            else ans = maxOf(ans, i - first[c] - 1)
        }
        return ans
    }
}