看到http://www.aygfsteel.com/nokiaguy/archive/2008/05/10/199647.html出了一道java算法題,給出一個解法如下:

           1/*摘要: 原題如下:用1、2、2、3、4、5這六個數字,用java寫一個程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"與"5"不能相連。*/
           2class javatest
           3{
           4    public static void main(String[] args)
           5    {
           6        StringBuilder sb=new StringBuilder(6);
           7        sb.append("22");//初始化為兩個2,以后的字符都是往空里插,不會重復
           8        int count=0;
           9        for(int i=0;i<sb.length()+1;i++)
          10        {
          11            sb.insert(i,"1");//插入1
          12            for(int j=0;j<sb.length()+1;j++)//注意有lenght()+1個空
          13            {
          14                sb.insert(j,"3");
          15                for(int k=0;k<sb.length()+1;k++)
          16                {
          17                    sb.insert(k,"4");
          18                    for(int m=0;m<sb.length()+1;m++)
          19                    {
          20                        sb.insert(m,"5");
          21                        if(valid(sb))
          22                        {
          23                            System.out.println(sb);
          24                            count++;
          25                        }

          26                        sb.deleteCharAt(m);
          27                    }

          28                    sb.deleteCharAt(k);
          29                }

          30                sb.deleteCharAt(j);
          31            }

          32            sb.deleteCharAt(i);//刪除當前位置,等下一個位置插入
          33        }

          34        System.out.println(count);
          35    }

          36    static boolean valid(StringBuilder sb)
          37    {
          38        if(sb.charAt(2)=='4'||sb.indexOf("35")>=0||sb.indexOf("53")>=0)
          39            return false;
          40        return true;
          41    }

          42    
          43}

          44
          posted on 2009-07-27 20:02 lanxiazhi 閱讀(375) 評論(0)  編輯  收藏 所屬分類: 算法

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 宁阳县| 屏边| 屯留县| 建平县| 天镇县| 大荔县| 岳阳县| 阳山县| 灵武市| 乌鲁木齐市| 饶平县| 成都市| 靖安县| 宜州市| 高密市| 南澳县| 上蔡县| 霞浦县| 新竹市| 德州市| 吴江市| 银川市| 利津县| 西藏| 宜黄县| 错那县| 含山县| 道孚县| 高阳县| 来宾市| 古浪县| 集安市| 临清市| 灵山县| 甘肃省| 宜兰县| 永靖县| 潞西市| 图木舒克市| 平湖市| 抚松县|