当前位置:学者斋 >

IT认证 >JAVA认证 >

java算法字符组合排序

java算法字符组合排序

为帮助同学们学好java算法,yjbys小编为大家分享最新java算法——字符组合排序试题和答案如下:

java算法字符组合排序

  题目:

用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。

不是特别难的题目,暴力算和用图论算(深度遍历)都可以,结果是198.图论的.话就是构造无向图,然后深度优先递归。

package hic;

import ator;

import Set;

public class CharSequence {

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

private int n = th;

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(th() == n){

(result);

result = tring(0,th()-1);

visited[index] = false;

}

else{

for(int i=0; i

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

depthFirst(i);

}else continue;

}

result = tring(0,th()-1);

visited[index] = false;

}

}

public void graphicGet(){

for(int i=0; i

depthFirst(i);

}

int count = 0;

t("图论的结果:");

Iteratorit = ator();

while(ext()){

String tmp = ();

if(ains("35")) continue;

if(ains("53")) continue;

if(At(3) == '4') continue;

tln(tmp);

count++;

}

tln("共计:"+count+"个");

}

public void bruteForce(){

tln("暴力搜的结果:");

int count = 0;

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

String tmp = ""+i;

if(At(3) == '4') continue;

if(ains("35")) continue;

if(ains("53")) continue;

if(ains("5") && ains("4") && ains("3") && ains("1"))

{

int index = xOf("2");

if(index == -1) continue;

if(index == th()-1) continue;

if(tring(index+1)ains("2")){

tln(tmp);

count++;

}

}

}

t("共计:"+count+"个");

}

public void recrusive(){

}

public static void main(String[] args) {

CharSequence cs = new CharSequence();

//图论的方法

hicGet();

//暴力搜索

eForce();

}

}

标签: JAVA 算法 字符
  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/itrz/java/1vk0me.html