程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 用java寫一個main函數,打印出1-6這這六個數字的所有不同的排列

用java寫一個main函數,打印出1-6這這六個數字的所有不同的排列

編輯:關於JAVA

1、2、2、3、4、5這六個數字,用java寫一個main函數,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"與"5"不能相連.

package com.test;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * 1、2、2、3、4、5這六個數字,用java寫一個main函數,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"與"5"不能相連.
 * 
 * @author SIMONE [email protected] 2009-6-12
 */
public class GroupTest {
    public static List<String> list = new ArrayList<String>();
     /**
     * 構造字符串的所有排序組合
     * 
     * @param str 將要組合成的字符
     * @param nstr 源字符串集
     */
    public static void group(String str, String nstr) {
        if (str.length() != nstr.length()) {
            String rest = getRest(str, nstr);
            for (int i = 0; i < rest.length(); i++) {
                String temp = str + rest.substring(i, i + 1);
                if (temp.indexOf("4") != 2 && temp.indexOf("35") == -1 && temp.indexOf("53") == -1) {// 過濾顯示條件,如果去掉此處的判斷,就是列出所有字符集的排列組合
                    System.out.println(temp);
                    if (!list.contains(temp)) {
                        list.add(temp);
                    }
                    group(temp, nstr);
                }
            }
        }
    }
     /**
     * 從源字符串集中去除將要組合成的字符
     * 
     * @param str 將要組合成的字符
     * @param nstr 源字符串集
     * @return 剩余字符串集
     */
    public static String getRest(String str, String nstr) {
        String rest = "";
        if (nstr.length() > str.length()) {
            rest = nstr;
            for (int i = 0; i < str.length(); i++) {
                rest = rest.replaceFirst(str.substring(i, i + 1), "");// 注意此處的replaceFirst,而不是replaceAll
            }
        }
        return rest;
    }
 
    public static void main(String[] args) {
        group("", "122345");
        System.out.println(list.toString());
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved