37. 交换字符(第三期模拟笔试)

内存限制:128 MB 时间限制:1.000 S

题目描述

给定一个01串(仅由字符'0'和字符'1'构成的字符串)。每次操作可以交换两个相邻的字符。 

例如:对于字符串"001110"来说,可以交换第二个字符'0'和第三个字符'1',交换之后的字符串变成了"010110"。

如果想要最终字符串任意两个相邻的字符都不相同,最少需要多少操作次数?保证输入的所有字符串测试用例通过交换后一定能够形成相邻两个字符都不相同的字符串。

输入

一行仅由 '0' 、 '1' 组成的字符串

输出

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

样例输入 复制

11100

样例输出 复制

3

提示

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

总共交换3次。

数据范围:

2 <= 01串长度 <= 100000;