1-5 游游的交换字符

1-5 游游的交换字符

游游的交换字符

链接:https://ac.nowcoder.com/acm/contest/60245/C
来源:牛客网

时间限制:C/C++ 1秒
空间限制:C/C++ 262144K

题目描述

游游拿到了一个01串(仅由字符'0'和字符'1'构成的字符串)。游游每次操作可以交换两个相邻的字符,例如,对于字符串"11001"而言,游游可以交换第二个字符和第三个字符变成"10101"。
游游希望最终字符串任意两个相邻的字符都不相同,她想知道最少需要多少操作次数?保证答案是有解的,即最终一定能形成任意两个相邻的字符都不相同的字符串。

输入描述:

一行仅由 '0' 、 '1' 组成的字符串,字符串长度 \(n\) 满足 \(2\leq n\leq200000\)。

输出描述:

游游使得相邻两个字母不等的最少操作次数。

示例1

输入

11100

输出

3

说明

先交换第三个、第四个字符,得到字符串"11010"。
然后交换第二个、第三个字符,得到字符串"10110"。
最后交换第四个、第五个字符,得到字符串"10101"。
总共交换3次。

示例2

输入

01011

输出

2

说明

先交换前两个字符,得到字符串"10011"
然后交换第三个、第四个字符,得到字符串"10101"

信息

ID
1421
难度
6
分类
(无)
标签
(无)
递交数
36
已通过
12
通过率
33%
上传者

相关