找到长度为k的字符串的排列

时间:2016-05-06 15:28:00

标签: algorithm data-structures permutation

我想生成给定长度为k的字符串的排列。以下是代码。

public class PermString {
    private static void swap(char[] a, int i, int j){
        char temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    private static void permute(char[] a, int n){
        if(n ==1){
            System.out.println(a);
        }
        for(int i=0; i<n ; i++){
            swap(a, i, n-1);
            permute(a, n-1);
            swap(a, i, n-1);
        }
    }
    public static void main(String[] args) {
        String str = "ABCCCD";
        char[] characters = str.toCharArray();
        permute(characters, characters.length);
    }
}

它正确生成字符串的排列,我想知道如何编码固定大小长度的条件,比如说k。

1 个答案:

答案 0 :(得分:0)

你只需要添加另一个函数来计算大小K的所有组合---让我们把它命名为

  

combGen(char [],int K)

对于每个生成的组合 - 使用现有代码计算所有排列。

他们你会有解决方案。已经存在生成组合的现有实现,您可以将其作为reference