java算法字符组合排序
为帮助同学们学好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();
}
}
-
2017年计算机等级MSOffice考试试题附答案
计算机网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。下面是小编整理的关于计算机等级MSOffice考试试题附答案,欢迎大家参考!(1)计算机可分为按性能可以分为超级计算机、大型计算机、小型计算机、微型计算机和A)服务器B)掌中设...
-
2016下半年计算机二级考试C++试题及答案
1.已知一汉字的国标码是5E38,其内码应是()。A)DEB8B)DE38C)5EB8D)7E58答案:A2.已知三个字符为:a、Z和8,按它们的ASCII码值升序排序,结果是()。A)8、a、ZB)a、8、ZC)a、Z、8D)8、Z、a答案:D3.计算机技术中,下列度量存储器容量的单位中,最大的单位是()。A)KBB)MBC)ByteD)...
-
2017年计算机二级mos office考试试题及答案「精选」
计算机应用是计算机学科与其他学科相结合的边缘学科,是计算机学科的组成部分。下面是小编整理的关于计算机二级mosoffice考试试题及答案,希望大家认真阅读!1[单选题]下列叙述中正确的是().A.结点中具有两个指针域的链表一定是二叉链表B.结点中具有两个指针域的链...
-
2017年计算机等级考试二级C语言考试试题
C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。下面是小编整理的关于计算机等级考试二级C语言考试试题,欢迎大家参考!(一)单选题(每题1分,共20分)1.第二代电子计算机所采用的...