Посчитайте, какое минимальное количество камней нужно убрать со стола - Free Pascal
Формулировка задачи:
Помогите пожалуйста решить:
На столе в ряд выложены n камней, каждый из которых может быть красного, зеленого или синего цвета. Посчитайте, какое минимальное количество камней нужно убрать со стола, чтобы любые два соседних камня имели разные цвета. Камни в ряду считаются соседними, если между ними нет других камней.
Входные данные
В первой строке задано целое число n (1 ≤ n ≤ 50) — количество камней на столе. В следующей строке задана строка s, обозначающая цвета камней. Будем считать, что камни в ряду пронумерованы целыми числами от 1 до n слева направо. Тогда i-ый символ s равен «R», если i-ый камень красного цвета, «G» — если он зеленого цвета, и «B» — если он синего цвета.Выходные данные
Выведите единственное целое число — ответ на задачу.Примеры тестов
входные данные
3 RRGвыходные данные
1входные данные
5 RRRRRвыходные данные
4входные данные
4 BRBGвыходные данные
0Решение задачи: «Посчитайте, какое минимальное количество камней нужно убрать со стола»
textual
Листинг программы
var s:string; i,n,t:integer; begin Writeln('Vhodnie dannie:'); Readln(n); Readln(s); Writeln; Writeln('Vihodnie dannie:'); t:=0; for i:=2 to Length(s) do if s[i]=s[i-1] then Inc(t); Writeln(t); Readln; end.
Объяснение кода листинга программы
- Объявлены три переменные: s (строка), i (целое число), n (целое число).
- Выводится сообщение
Входные данные:
. - Пользователь вводит строку и число, нажав Enter после каждого ввода.
- Выводится сообщение
Выходные данные:
. - Переменная t инициализируется значением 0.
- Происходит цикл от 2 до длины строки (используется Length(s)).
- Если текущий символ равен предыдущему, то к переменной t прибавляется 1.
- После окончания цикла выводится значение переменной t.
- Программа ожидает ввода от пользователя, чтобы закрыться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д