只含0、1的串进行排序,可任意交换位置,最小交换次数

来源:互联网 发布:淘宝客服数据在哪看 编辑:程序博客网 时间:2024/05/22 00:15

题目描述:
把一个0 1 串(只包含0 1的串)进行排序,你可以交换任意两个位置,问最小交换的次数?
解题思路
思路: 两个标杆 i代表从左往右 j代表 从右往左 ,i碰到0 和 j碰到1进行交换, 由于是0 – length 所以是线性的。
具体实现

package string;/*** * 题目: 把一个0 1 串(只包含0 1的串)进行排序,你可以交换任意两个位置,问最小交换的次数? * @author topwqp * 思路: 两个标杆  i代表从左往右   j代表 从右往左  ,i碰到0 和 j碰到1进行交换, 由于是0 -- length 所以是线性的。 */public class ZeroOneChangeCount {    public static void main(String args[]){        String input = "000010010010001000111001";              char[]  array = input.toCharArray();        int count = 0;        for(int i = 0,j=array.length-1;i<j; ++i,--j){            for(;i<j && array[i] =='0';)  ++i;             for(;i<j && array[j] =='1';) --j;            if(i<j) count++;        }        System.out.println("最小交换次数为: "+count);    }}
0 0
原创粉丝点击