50 ! решите по программированию.
: одномерный японский кроссворд
не так давно петя узнал, что такое японский кроссворд. японский кроссворд — это изображение, представляемое таблицей размера a × b квадратных клеток, каждая из которых имеет либо белый, либо черный цвет. слева от строк и сверху от столбцов располагаются числа, которые шифруют данную строку или столбец. количество чисел показывает, сколько групп чёрных клеток находятся в соответствующей строке или столбце, а сами числа — сколько идущих подряд чёрных клеток содержит каждая из этих групп.
петя счел общий случай японского кроссворда слишком сложным и нарисовал строку из n клеток (то есть японский кроссворд размера 1 × n), которую он хочет зашифровать числами так же, как в японском кроссворде.
пример шифрования одной строки японского кроссворда.
петя найти числа, шифрующие нарисованную им строку кроссворда.
входные данные
в первой строке содержится целое положительное число n (1 ≤ n ≤ 100) — длина строки. во второй строке содержится строка, состоящая из n символов 'b' или 'w', ('b' соответствует черной клетке, 'w' — белой клетке в строке, нарисованной петей).
выходные данные
в первой строке должно содержаться целое неотрицательное число k — количество чисел, шифрующих строку, то есть количество групп черных клеток в строке.
во второй строке должно содержаться k целых чисел, шифрующих строку, то есть соответствующих размерам групп последовательных черных клеток в порядке слева направо.
пример:
ввод:
3
bbw
вывод:
1
2
p.s. если кому надо, то вот словесное описание решения, которое я не понимаю: в этой нужно посчитать длину каждого блока из подряд идущих чёрных клеток. делать это можно так: пройдёмся циклом с переменной i по нашей строке слева направо, если мы встретили чёрную клетку, то возьмём переменную j = i, и пока j < n и s[j] = 'b', мы прибавляем j. далее мы добавляем в ответ длину получившегося отрезка (она равна j - i), и переприсваеваем в i значение j. после того, как цикл по i закончит выполнение, можно выводить ответ.
асимптотика такого решения — o(n) времени и памяти.
напишите программу на языке pascalabc.net (желательно) или "c", максимально понятно и просто.
224
297
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Zhuldyz200511.06.2021 06:30
-
MrXMen19.05.2022 21:19
-
frezoloto11.05.2022 15:54
-
НиколайКот08.06.2021 22:45
-
ayatyusubova104.06.2021 16:32
-
никанана01.07.2020 05:30
-
Atems56426.10.2021 21:02
-
katyaaalovely05.06.2023 22:01
-
anna1619101.08.2020 01:33
-
tolkacheva200514.01.2021 00:22
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.