Посчитайте, какое минимальное количество камней нужно убрать со стола - 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.

Объяснение кода листинга программы

  1. Объявлены три переменные: s (строка), i (целое число), n (целое число).
  2. Выводится сообщение Входные данные:.
  3. Пользователь вводит строку и число, нажав Enter после каждого ввода.
  4. Выводится сообщение Выходные данные:.
  5. Переменная t инициализируется значением 0.
  6. Происходит цикл от 2 до длины строки (используется Length(s)).
  7. Если текущий символ равен предыдущему, то к переменной t прибавляется 1.
  8. После окончания цикла выводится значение переменной t.
  9. Программа ожидает ввода от пользователя, чтобы закрыться.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы