字符串的排列

来源:互联网 发布:python大数据 编辑:程序博客网 时间:2024/06/07 22:24

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 

解:

import java.util.*;public class Solution {    public ArrayList<String> Permutation(String str) {        ArrayList<String> result = new ArrayList<String>();        if(str==null||str.length()==0)            return result;        char[] c = str.toCharArray();        Permutation(result, c, 0, c.length);        Collections.sort(result);        return result;    }     public void Permutation(ArrayList<String> list,char[] c, int star,int end){        if(star==end-1){            String result = new String(c);            if(!list.contains(result))                list.add(result);            return;        }        //交換        for(int i = star;i<end;i++){            if(i!=star&&c[star]==c[i])                continue;            char temp = c[star];            char temp2 = c[i];            c[star] = temp2;            c[i] = temp;            Permutation(list,c,star+1,end);            c[star] = temp;            c[i] = temp2;        }    }}

0 0
原创粉丝点击