Как посчитать количество больше всего повторяющихся подряд букв/элементов в слове
На вход подается строка, и нужно посчитать, сколько раз больше всего встречается элемент, который идет подряд, и что это за элемент.
например: "вввыыыывддц" => вывод: 4, ы
P.s Было бы хорошо, если бы задачу решили как-нибудь с помощью методов массива :)
Ответы (1 шт):
let str = prompt('Строка');
let max_symbol;
let max_number = 0;
let k = 1;
for (let i=0; i<str.length-1; i++){
if (str[i] == str[i+1]){
k = k + 1;
}
else {
if (max_number < k) {max_number = k; max_symbol = str[i];};
k = 1;
}
}
if (max_number < k) {max_number = k; max_symbol = str[str.length-1];};
console.log(max_symbol);
console.log(max_number);
Берем строку, сравниваем каждые два рядомстоящих символа. Каждый раз, когда они совпадают, увеличиваем счетчик на 1. Если не совпадают, проверяем, больше ли счетчик чем самая большая последовательность. Если да, то максимуму присваиваем значение счетчика, и в другую переменную закидываем последний символ из этой последовательности. Счетчик сбрасываем.
В конце снова проверка, потому что если самая большая последовательность будет в конце, то проверка не выполнится, потому что в конце будут два одинаковых символа, а для проверки нужны разные.
Потом в консоль выводим сначала символ, а потом длину последовательности.