Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483701
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:31:17

     输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
    先看代码吧:

   
    import java.util.ArrayList;

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

      public static void addNumber(String str) {
        if (str.charAt(2) == '4' || str.contains("35") || str.contains("53")) {
          return;
        }
        set.add(str);
      }

      public static Set set = new TreeSet();

      public static void main(String[] args) {
        List list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        find(list);
        System.out.println(set.size());
        int cols = 10;
        for (String s : set) {
          System.out.print(s+" ");
          if(cols--==1) {
            System.out.println();
            cols = 10;
          }
        }
      }
    }

    import java.util.ArrayList;

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

      public static void addNumber(String str) {
        if (str.charAt(2) == '4' || str.contains("35") || str.contains("53")) {
          return;
        }
        set.add(str);
      }

      public static Set set = new TreeSet();

      public static void main(String[] args) {
        List list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        find(list);
        System.out.println(set.size());
        int cols = 10;
        for (String s : set) {
          System.out.print(s+" ");
          if(cols--==1) {
            System.out.println();
            cols = 10;
          }
        }
      }
    }

[1]  

【责编:landy】

--------------------next---------------------

阅读(105) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~