给我们一个长度为n,仅由字符‘0’和‘1’组成的0-1字符串s(s1,s2,……,sn),可以对该字符串执行以下操作若干次:
(1) 任意选择一个索引i(1≤ i ≤n);
(2) 对所有的大于等于i的索引j(j>=i ),改变该位置的字符值,即如果sj为字符‘0’,则将其改为’1’;如果该位值字符sj为‘1’,则将其改为‘0’;
请问,至少需要上述操作多少次才能将字符串s转换为非递减0-1字符串?
给我们一个长度为n,仅由字符‘0’和‘1’组成的0-1字符串s(s1,s2,……,sn),可以对该字符串执行以下操作若干次:
(1) 任意选择一个索引i(1≤ i ≤n);
(2) 对所有的大于等于i的索引j(j>=i ),改变该位置的字符值,即如果sj为字符‘0’,则将其改为’1’;如果该位值字符sj为‘1’,则将其改为‘0’;
请问,至少需要上述操作多少次才能将字符串s转换为非递减0-1字符串?
第一行一个整数t(1≤t≤10000):测试用例数;
每个测试用例两行:
第一行一个整数n:字符串长度;
第二行一个长度为n,仅有‘0’和‘1’组成的字符串s;
共t行,每个测试用例一行一个整数:将字符串s转换为非递减字符串所需要的最少操作次数。
8 1 1 2 10 3 101 4 1100 5 11001 6 100010 10 0000110000 7 0101010
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次;