您的位置:首页 > 其它

字符串的排列组合

2015-06-29 17:03 357 查看
package java_study.JianZhiOffer;

import org.junit.Test;

/**
* Created by ethan on 2015/6/29.
*/
public class No28字符串的排列组合 {

public void permutation(String str){
char[] arr = str.toCharArray();
permutationImp(arr, 0);
}
public void permutationImp(char[] arr, int begin){
if (arr==null) return;
if (begin>=arr.length){
print_arr_char(arr);
return;
}
for (int i=begin; i<arr.length; i++){
char tmp = arr[i];
arr[i] = arr[begin];
arr[begin] = tmp;
permutationImp(arr, begin+1);
char tmp1 = arr[i];
arr[i] = arr[begin];
arr[begin] = tmp1;
}
}

public void permutation_with_dupilcate(int len){
int[] arr = new int[len];
permutation_with_dupilcate_Imp(arr, 0);
}
public void permutation_with_dupilcate_Imp(int[] arr, int begin){
if (arr==null) return;
if (begin>=arr.length) {
print_arr(arr);
return;
}
for (int i=0; i<=9; i++){
arr[begin]=i;
permutation_with_dupilcate_Imp(arr, begin+1);
}
}
public void print_arr(int[] arr){
for (int i=0; i<arr.length; i++)
System.out.print(arr[i]);
System.out.println();
}
public void print_arr_char(char[] arr){
for (int i=0; i<arr.length; i++)
System.out.print(arr[i]);
System.out.println();
}
@Test
public void test(){
permutation("abc");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息