Вам задана строка $$$s$$$ четной длины $$$n$$$. Строка $$$s$$$ — бинарная, другими словами, состоит только из 0 (нулей) и 1 (единиц).
Строка $$$s$$$ состоит ровно из $$$\frac{n}{2}$$$ нулей и $$$\frac{n}{2}$$$ единиц ($$$n$$$ — четное).
За одну операцию вы можете развернуть любую подстроку $$$s$$$. Подстрока строки — это непрерывная подпоследовательность символов данной строки.
Какое минимальное количество операций вам понадобится, чтобы сделать $$$s$$$ чередующейся? Строка чередующаяся, если $$$s_i \neq s_{i + 1}$$$ для всех $$$i$$$. В общем, существует два типа чередующихся строк: 01010101... или 10101010...
В первой строке задано единственное целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных.
В первой строке каждого набора входных данных задано одно целое число $$$n$$$ ($$$2 \le n \le 10^5$$$; $$$n$$$ — четное) — длина строки $$$s$$$.
Во второй строке каждого набора задана бинарная строка $$$s$$$ длины $$$n$$$ ($$$s_i \in$$$ {0, 1}). В строке $$$s$$$ ровно $$$\frac{n}{2}$$$ нулей и $$$\frac{n}{2}$$$ единиц.
Гарантируется, что сумма $$$n$$$ по наборам входных данных не превосходит $$$10^5$$$.
Для каждого набора входных данных, выведите минимальное количество операций, чтобы сделать $$$s$$$ чередующейся.
3 2 10 4 0110 8 11101000
0 1 2
В первом наборе входных данных, строка 10 уже чередующаяся.
Во втором наборе, мы можем, например, развернуть два последних символа $$$s$$$ и получить: 0110 $$$\rightarrow$$$ 0101.
В третьем наборе, мы можем, например, сделать следующие две операции:
Название |
---|