Вывести наибольшее количество следующих друг за другом символов k - Free Pascal
Формулировка задачи:
В одной строке содержится последовательность букв k и p, длина которой от 1 до 1000 символов. Требуется вывести одно число - наибольшее количество следующих друг за другом символов k. Заранее благодарен)
Решение задачи: «Вывести наибольшее количество следующих друг за другом символов k»
textual
Листинг программы
var
s: string;
i,n: integer;
curr_n, max_n: integer;
begin
Write('Введите строку: ');
readln(s);
i:= 1;
max_n:= 0;
while i <= Length(s) do
begin
if s[i] = 'k' then
begin
curr_n:= 0;
repeat
Inc(i);
Inc(curr_n);
until (i > Length(s)) or (s[i] <> 'k');
if curr_n > max_n then max_n:= curr_n;
end
else Inc(i);
end;
WriteLn(max_n);
ReadLn;
end.
Объяснение кода листинга программы
В данном коде задача заключается в поиске наибольшего количества следующих друг за другом символов 'k' в строке, введенной пользователем.
- Переменная
sтипа string используется для хранения строки, введенной пользователем. - Переменные
iиnтипа integer используются для итерации по символам строки. - Переменные
curr_nиmax_nтипа integer используются для хранения текущего и максимального количества символов 'k', следующих друг за другом. - В начале программы пользователю предлагается ввести строку.
- Затем происходит итерация по символам строки, начиная с первого, до тех пор, пока не будет достигнум конец строки или не будет найден символ 'k'.
- Если найден символ 'k', то увеличивается значение переменной
curr_nи начинается поиск следующего символа 'k'. При этом, если найденный символ 'k' не является началом подстрокиkk, то значение переменнойcurr_nсбрасывается до 0. - Если значение переменной
curr_nбольше максимального значения переменнойmax_n, то значение переменнойmax_nобновляется. - После завершения цикла выводится значение переменной
max_n. - Программа завершается после чтения еще одного символа.