问题 6124 --完美字符串

6124: 完美字符串★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 35  解决: 16
[提交][状态][命题人:]

题目描述

完美字符串定义如下:如果一个字符串不包含“010”“101”作为子序列,则称该字符串为完美字符串。例如,“1001”包含“101”作为子序列,因此它不是一个完美字符串,而“1000”既不包含“010”也不包含“101”作为子序列,因此它是一个完美字符串。

子序列定义如下:如果可以通过删除几个(可能是零或全部)字符从b获得a,则称字符串a是字符串b的子序列。

现给我们一个二进制字符串s(字符串中只包含字符“0”“1”的字符串),我们可以对字符串s执行以下操作任意次:

操作:选择字符串的一个索引,并翻转该索引处字符,也就是说,如果原字符是“0”,翻转后就会变成“1”,反之亦然。

请问,我们最少要执行多少次上述操作,才能使该字符串变换为完美字符串?可以证明,通过执行上述操作若干次,我们可以使任意一个字符串变换为完美字符串。

输入

        第一行一个整数t(1≤t≤100):测试用例数;

        接下来共t行,每个测试用例一行一个字符串s (1≤|s|≤1000)|s|为字符串长度。

输出

输出共t行,每个测试用例一行一个整数:将字符串s转换为完美字符串所需要的最少操作次数。

样例输入
Copy
7
001
100
101
010
0
1
001100
样例输出
Copy
0
0
1
1
0
0
2

提示

1256已经时完美字符串,不需要执行任何操作,所以操作次数为0次;

在第3个测试用例中,我们可以翻转第一个字符,将字符串“101”变换为”001”,为完美字符串,所以操作次数为1次;

在第4个测试用例中,可以翻转第2个字符,将字符串“010”变换为“000”,为完美字符串,所以操作次数为1次;

在第7个测试用例中,可以翻转第34个字符,将字符串“001100”变换为“000000”,为完美字符串,所以操作次数为2次;

当然,也可以有其他操作方式;

来源

 

[提交][状态]