知识大全 关于数字排列的一个程序

Posted 排列

篇首语:识字粗堪供赋役,不须辛苦慕公卿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于数字排列的一个程序相关的知识,希望对你有一定的参考价值。

  输出 的所有排列组合 不能在第三位 和 不能相邻    先看代码吧

    import java util ArrayList;

  import java util List;    import java util Set;    import java util TreeSet;    /**     *     * @author 赵学庆      *     */    public class T       public static List<String> find(List<String> list)         List<String> rtn = new ArrayList<String>();        String str;        for (int i = ; i < list size(); i++)           str = list get(i);          list remove(i);          if (list size() == )             rtn add(str);          else             List<String> sList = find(list);            for (String s : sList)               rtn add(str + s);              if (s length() == )                 addNumber(str + s);                                              list add(i str);                return rtn;     

  public static void addNumber(String str)         if (str charAt( ) == || ntains( ) || ntains( ))           return;                set add(str);     

  public static Set<String> set = new TreeSet<String>();

  public static void main(String[] args)         List<String> list = new ArrayList<String>();        list add( );        list add( );        list add( );        list add( );        list add( );        list add( );        find(list);        System out println(set size());        int cols = ;        for (String s : set)           System out print(s+ );          if(cols == )             System out println();            cols = ;                           

  import java util ArrayList;

  import java util List;    import java util Set;    import java util TreeSet;    /**     *     * @author 赵学庆      *     */    public class T       public static List<String> find(List<String> list)         List<String> rtn = new ArrayList<String>();        String str;        for (int i = ; i < list size(); i++)           str = list get(i);          list remove(i);          if (list size() == )             rtn add(str);          else             List<String> sList = find(list);            for (String s : sList)               rtn add(str + s);              if (s length() == )                 addNumber(str + s);                                              list add(i str);                return rtn;     

  public static void addNumber(String str)         if (str charAt( ) == || ntains( ) || ntains( ))           return;                set add(str);     

  public static Set<String> set = new TreeSet<String>();

  public static void main(String[] args)         List<String> list = new ArrayList<String>();        list add( );        list add( );        list add( );        list add( );        list add( );        list add( );        find(list);        System out println(set size());        int cols = ;        for (String s : set)           System out print(s+ );          if(cols == )             System out println();            cols = ;                           

  输出结果

                                                                                   

                                                                                       网友提供的一个比较优化的算法

cha138/Article/program/Java/hx/201311/26950

相关参考