久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

java算法字符組合排序

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

java算法字符組合排序

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

  題目:

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

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

  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()函數(shù)“自然排序算法”進行字符串比較用法分析06-06

關于Java入門的字符型數(shù)據(jù)10-28

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

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

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

Java編程中如何實現(xiàn)中文排序08-13

四種簡單的排序算法的php實現(xiàn)10-18