我想生成给定长度为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。
答案 0 :(得分:0)
你只需要添加另一个函数来计算大小K的所有组合---让我们把它命名为
combGen(char [],int K)
对于每个生成的组合 - 使用现有代码计算所有排列。
他们你会有解决方案。已经存在生成组合的现有实现,您可以将其作为reference