字符串全排列

输入“abc" 输出:abc acb bac bca cab cba

package offer;

public class zifuchuan {
static void swap(char[] c,int a,int b){
    char temp;
    temp=c[a];
    c[a]=c[b];
    c[b]=temp;
    
}

static int is_swap(char[]c ,int start,int k){
    int flag=1;
    for(int i=start;i<k;i++){
        if(c[i]==c[k]){
            flag=0;
            break;
        }
    }
    return flag;
    
}
static void digui(char a[],int begin,int end){
    int k;
    int j;
    if(begin==end){
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]);
        }
    }
    else{
        for(k=begin;k<end;k++){
            if(is_swap(a,begin,k)==1){
                swap(a,k,begin);
                digui(a,begin+1,end);
                swap(a,k,begin);
                
            }
            
        }
    }
}
    public static void main(String[] args) {
// TODO Auto-generated method stub
  String str="abc";
  char []a=str.toCharArray();
  int i,len;
  digui(a,0,a.length);
  
  
  
    }

}

 

posted @ 2016-06-16 20:45  柏拉图lucy  阅读(127)  评论(0编辑  收藏  举报