求所有划分集合

字符串(可以推广到数组)"abc",它的一个划分是由它的子字符串组成的集合,比如abc能够产生一下四个划分{a,b,c},{a,bc},{ab,c},{abc}。现在用代码生成给定字符串的划分集合。

public ArrayList> partition(String s){
        if(s==null||s.isEmpty()){
            return null;
        }
        ArrayList> result=new ArrayList>();
        ArrayList output=new ArrayList();
        getPartition(s,0,output,result);
        return result;
    }
    
    private void getPartition(String s,int start,ArrayList output,ArrayList> result){
        if(start==s.length()){
            ArrayList oneSplit=new ArrayList();
            oneSplit.addAll(output);
            result.add(oneSplit);
            return;
        }
        for(int i=start;i){
            output.add(s.substring(start,i+1));
            getPartition(s,i+1,output,result);
            output.remove(output.size()-1);
        }
    }

 

 

转载于:https://www.cnblogs.com/orchid/p/3336991.html

你可能感兴趣的:(求所有划分集合)