122345面试题
来源:互联网 发布:中建八局网络教育 编辑:程序博客网 时间:2024/05/29 09:07
输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻。
当时做的时候真的是想了好半天,那家公司也不让上机去做,就直接给你张纸,弄的只能想。想做个演算都不行。。最后只做了一半就放那了,回家上网搜到答案一看。自己做不出来也就不怎么懊恼了。 是挺难想的。答案贴出来
public class Sorted {
public static List<String> find(List<String> list) {
List<String> rtn = new ArrayList<String>();
String str;
for (int i = 0; i < list.size(); i++) {
str = list.get(i);
// System.out.println("================="+str);
list.remove(i);
if (list.size() == 0) {
rtn.add(str);
} else {
List<String> sList = find(list);
for (String s : sList) {
rtn.add(str + s);
if (s.length() == 5) {
addNumber(str + s);
}
}
}
list.add(i, str);
}
return rtn;
}
/**
* * 通过这个来排除 *
*
* @param str
*/
public static void addNumber(String str) {
if (str.charAt(2) == '4' || str.contains("35") || str.contains("53")) {
return;
}
set.add(str);
}
public static Set<String> set = new TreeSet<String>();
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
find(list);
System.out.println(set.size());
int cols = 10;
for (String s : set) {
System.out.print(s + " ");
if (cols-- == 1) {
System.out.println();
cols = 10;
}
}
}
}
- 122345面试题
- 面试题....
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- 面试题
- VHDL程序的基本结构
- AT&T的汇编世界
- Oracle10g 管理系统全局区(SGA)
- Windows操作系统出现内存错误怎么办? 「“0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”」!!
- fdfdf
- 122345面试题
- 云安全
- 26:shell工具
- 使用JavaFX时间轴(Timeline)编写的等待动画
- 改进活动的四个原则
- JavaScript学习笔记 ——最佳实践
- 在程序运行中中止当前方法的运行
- EnableWindow()函数的应用
- 加入CSDN