12°

输入一个字符串,按字典序打印出该字符串中字符的所有排列。

import java.util.ArrayList;

import java.util.Collections;

public class Solution {

ArrayList<String> list = new ArrayList<String>();

public ArrayList<String> Permutation(String str) { char a[]=str.toCharArray(); f(a,0);

Collections.sort(list);
return list;

}

public void f(char a[],int k){

if(k==a.length-1)
    list.add(new String(a));

for(int i=k;i&lt;a.length;i++){
    
   while(i!=k&amp;&amp;i&lt;a.length&amp;&amp;a[k]==a[i])
        i++;
    
    if(i==a.length)
        break;
   
    char temp=a[k];
    a[k]=a[i];
    a[i]=temp;
    
    f(a,k+1);
    
    temp=a[k];
    a[k]=a[i];
    a[i]=temp;
}

}

}

本文由【南】发布于开源中国,原文链接:https://my.oschina.net/u/2511906/blog/3136997

全部评论: 0

    我有话说: