#P9938. 交换的轮数
交换的轮数
交换的轮数
题目描述
给定一个只由 与 构成序列,不断扫描序列,在每一轮扫描的过程中,如果发现有一些 与 相邻,且 在前, 在后,就在这一轮扫描后,同时将这些 与相邻的 交换。不断进行调整直到将所有的 都在序列的前一半,所有的 都在序列的后一半为止。
请计算需要进行多少轮交换才能完成调整。
输入格式
- 一个由若干
0
和1
字符组成的序列。
输出格式
- 单个整数:表示交换的次数。
数据范围
- 对于 的数据,
- 对于 的数据,
- 对于 的数据,
样例数据
输入:
1100
输出:
3
在这个例子中,每一轮扫描将进行如下操作:
- 第一轮将
1100
变为1001
(进行一次交换) - 第二轮将
1001
变为0101
(进行一次交换) - 第三轮将
0101
变为0011
(进行一次交换)
总共需要三轮交换来完成所有的 在前和所有的 在后的目标。