Вот описание того, как я решил эту проблему на LeetCode. Задача требует, чтобы вы нашли максимальное количество последовательных символов в заданной строке.

Я настроил цикл for для повторения каждого символа, а затем определил, что при каждом проходе мне нужно отслеживать текущее максимальное количество, называемое maxCount, и текущую промежуточную сумму, называемую currentCount. Для каждой итерации цикла это все, что нужно учитывать.

В цикле я знал, что мне придется сравнивать текущий наблюдаемый символ с предыдущим символом. Если они совпадают, я добавляю единицу к currentCount, в противном случае я просто сбрасываю currentCount на единицу. В конце каждого цикла я устанавливаю maxCount либо равным самому себе, либо currentCount — в зависимости от того, что больше. Вне цикла я обязательно вернул maxCount в качестве конечного результата.

С точки зрения пространственной сложности, мы не храним и не храним объекты данных, поэтому у нас есть пространственная сложность O(1). С точки зрения временной сложности, мы используем только один цикл for, который выполняет итерацию по каждому символу в заданной строке, поэтому у нас есть временная сложность O(n), где n — длина заданной строки s.

Смотрите мое полное решение ниже:

var maxPower = function(s) {
    let maxCount = 0
    let currentCount = 1
            
    for(let i = 1; i <= s.length; i++){
        let char = s[i]
        let lastChar = s[i - 1]
        if(char === lastChar){
            currentCount += 1
        } else {
            currentCount = 1
        }
        maxCount = Math.max(maxCount, currentCount)
    }
    
    return maxCount
};