问题 5897 --非递减0-1字符串

5897: 非递减0-1字符串★★★

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

题目描述

给我们一个长度为n,仅由字符‘0’和‘1’组成的0-1字符串ss1,s2,……,sn,可以对该字符串执行以下操作若干次:

(1)        任意选择一个索引i1≤ i ≤n);

(2)        对所有的大于等于i的索引jj>=i ,改变该位置的字符值,即如果sj为字符‘0’,则将其改为’1’;如果该位值字符sj为‘1’,则将其改为‘0’;

请问,至少需要上述操作多少次才能将字符串s转换为非递减0-1字符串?

输入

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

        每个测试用例两行:

        第一行一个整数n:字符串长度;

        第二行一个长度为n,仅有‘0’和‘1’组成的字符串s

输出

       t行,每个测试用例一行一个整数:将字符串s转换为非递减字符串所需要的最少操作次数。

样例输入
Copy
8
1
1
2
10
3
101
4
1100
5
11001
6
100010
10
0000110000
7
0101010
样例输出
Copy
0
1
2
1
2
3
1
5

提示

在第一个测试用例中,字符串s已经是非递减字符串,操作次数为0

在第二个测试用例中,可以选择i=1,将s转换为:s=01,最少操作次数为1次;

在第三个测试用例中,s=101,第一次选择i=1,操作后s=010;第二次选择i=2,操作后s=001,为非递减0-1字符串,所以最少操作次数为2次;

      在第四个测试用例中,s=1100,可以选择i=1,操作后s=0011,为非递减0-1字符串,所以最少操作次数为1次;

来源

 

[提交][状态]