<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            java算法字符組合排序

            時間:2024-07-02 14:50:54 JAVA認證 我要投稿
            • 相關推薦

            java算法字符組合排序

              為幫助同學們學好java算法,yjbys小編為大家分享最新java算法——字符組合排序試題和答案如下:

              題目:

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

              不是特別難的題目,暴力算和用圖論算(深度遍歷)都可以,結果是198.圖論的話就是構造無向圖,然后深度優先遞歸。

              package com.graphic;

              import java.util.Iterator;

              import java.util.TreeSet;

              public class CharSequence {

              private String[] c = {"1","2","2","3","4","5"};

              private int n = c.length;

              private boolean[] visited = new boolean[n];

              private int[][] g = new int[n][n];

              private TreeSetts = new TreeSet();

              private String result = "";

              public CharSequence(){

              for(int i=0; i

              for(int j=0; j

              if(i == j) g[i][j] = 0;

              else g[i][j] = 1;

              }

              }

              g[3][5] = 0;

              g[5][3] = 0;

              }

              public void depthFirst(int index){

              visited[index] = true;

              result += c[index];

              if(result.length() == n){

              ts.add(result);

              result = result.substring(0,result.length()-1);

              visited[index] = false;

              }

              else{

              for(int i=0; i

              if(!visited[i] && g[index][i] == 1){

              depthFirst(i);

              }else continue;

              }

              result = result.substring(0,result.length()-1);

              visited[index] = false;

              }

              }

              public void graphicGet(){

              for(int i=0; i

              depthFirst(i);

              }

              int count = 0;

              System.out.print("圖論的結果:");

              Iteratorit = ts.iterator();

              while(it.hasNext()){

              String tmp = it.next();

              if(tmp.contains("35")) continue;

              if(tmp.contains("53")) continue;

              if(tmp.charAt(3) == '4') continue;

              System.out.println(tmp);

              count++;

              }

              System.out.println("共計:"+count+"個");

              }

              public void bruteForce(){

              System.out.println("暴力搜的結果:");

              int count = 0;

              for(int i = 122345; i<543222; i++){

              String tmp = ""+i;

              if(tmp.charAt(3) == '4') continue;

              if(tmp.contains("35")) continue;

              if(tmp.contains("53")) continue;

              if(tmp.contains("5") && tmp.contains("4") && tmp.contains("3") && tmp.contains("1"))

              {

              int index = tmp.indexOf("2");

              if(index == -1) continue;

              if(index == tmp.length()-1) continue;

              if(tmp.substring(index+1).contains("2")){

              System.out.println(tmp);

              count++;

              }

              }

              }

              System.out.print("共計:"+count+"個");

              }

              public void recrusive(){

              }

              public static void main(String[] args) {

              CharSequence cs = new CharSequence();

              //圖論的方法

              cs.graphicGet();

              //暴力搜索

              cs.bruteForce();

              }

              }

            【java算法字符組合排序】相關文章:

            java五種排序算法匯總07-18

            關于Java的字符轉換08-28

            常見的php排序算法07-24

            PHP中strnatcmp()函數“自然排序算法”進行字符串比較用法分析06-06

            關于Java入門的字符型數據10-28

            關于JAVA字符串的拼接與性能06-07

            關于Java通用權限控制的算法06-07

            Java認證基礎知識:java字符串轉化整型問題07-21

            Java編程中如何實現中文排序08-13

            四種簡單的排序算法的php實現10-18

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看