Подсчет количества подряд идущих одинаковых букв в строке
Для решения задачи подсчета подряд идущих одинаковых букв в строке на языке программирования C++ можно воспользоваться простым линейным алгоритмом. Такой алгоритм требует прохождения по элементам строки и проверки последовательности одинаковых букв.
Вот пример реализации алгоритма:
#include <iostream>
#include <string>
int countConsecutiveLetters(const std::string& str) {
if (str.empty()) return 0; // Проверяем на пустую строку
int max_count = 1; // Наибольшее количество одинаковых букв подряд
int current_count = 1; // Текущее количество подряд идущих одинаковых букв
for (size_t i = 1; i < str.length(); ++i) {
if (str[i] == str[i-1]) {
current_count++;
} else {
if (current_count > max_count) {
max_count = current_count;
}
current_count = 1;
}
}
return std::max(max_count, current_count); // нужный результат
}
int main() {
std::string input = "aabbbccdeeee";
int result = countConsecutiveLetters(input);
std::cout << "Максимальное количество подряд идущих одинаковых букв: " << result << std::endl;
return 0;
}
Объяснение алгоритма:
- Инициализация: Начинаем с проверки строки на пустоту, устанавливаем начальные значения счетчиков
max_count
и current_count
равными 1.
- Проход по строке: Сравниваем текущий символ с предыдущим. Если они совпадают, увеличиваем
current_count
. Если они различны, проверяем и обновляем max_count
и сбрасываем current_count
до 1.
- Возвращаем результат: В конце, после выхода из цикла, необходимо еще раз сравнить
current_count
с max_count
, чтобы учесть последовательности, которые мог закончиться в конце строки.
Такой подход обеспечивает эффективный подсчет и показывает максимальное число подряд идущих одинаковых букв в строке.
Категория: Информатика
Теги: программирование, строки, алгоритмы