<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0
    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 wangxinsh55@126.com 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());
        }
    }
    posted on 2009-06-12 15:54 SIMONE 閱讀(4211) 評論(2)  編輯  收藏 所屬分類: JAVA

    FeedBack:
    # re: 1、2、2、3、4、5這六個數字,用java寫一個main函數,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"與"5"不能相連.
    2009-06-12 17:14 | Ken Wu
    god...  回復  更多評論
      
    # re: 1、2、2、3、4、5這六個數字,用java寫一個main函數,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"與"5"不能相連.
    2009-06-14 19:01 | 愛吃魚頭
    用經典的排列算法,在輸出時判斷一下就可以了。
    不明白為什么要用字符串操作呢。  回復  更多評論
      
    主站蜘蛛池模板: 亚洲av无码国产精品夜色午夜| 亚洲国产成人久久综合野外| 亚洲精品白浆高清久久久久久| 日韩一级片免费观看| 国产小视频在线免费| 日韩在线视频播放免费视频完整版| 日本久久久免费高清| 国产成人高清亚洲一区91| 免费a在线观看播放| WWW国产成人免费观看视频| 亚洲天堂免费在线视频| 中文字幕免费人成乱码中国| 亚洲一区二区三区偷拍女厕| 国产免费AV片在线观看| 精品日韩亚洲AV无码一区二区三区 | 亚洲黄片手机免费观看| 亚洲精品无码专区2| a级毛片在线免费看| 亚洲精品私拍国产福利在线| 精品国产污污免费网站aⅴ| 亚洲综合色区中文字幕| 国产精品美女自在线观看免费| 日本永久免费a∨在线视频| 亚洲三区在线观看无套内射| 99视频免费观看| 亚洲 日韩 色 图网站| 国产精品免费小视频| 久久精品无码免费不卡| 亚洲欧洲日产国码在线观看| 嫩草影院在线免费观看| 国产一级在线免费观看| 亚洲一区二区久久| 亚洲精品国产电影| 最近2022中文字幕免费视频| 亚洲精品国产精品| 国产亚洲精品自在久久| 免费在线看v网址| 国产免费牲交视频免费播放| 亚洲精品无码久久毛片波多野吉衣 | 亚洲性色高清完整版在线观看| 日本视频免费在线|