曾经面试遇到的问题:
1. 色子(6个面),N个色子,把所有组合输出来,去掉重复的(如:3个色子: 1,2,3的组合 和 3,2,1的组合 或者 2,3,1 的组合 都示为重复的 )
2. 画TABLE,所有单元格相临的颜色都不能有重复的.
这2个问题说明:
当时去了一家公司面试,环境挺好,也挺不错.
面试很简单.也很到位.
就给了我3个题. 并且只要做出其中2个题就可以.时间是5小时. 我看了下题.选的是其中的2个. 还有一个忘记了.
------重点希望有朋友可以解答第1题. 因为我只做了第1题. 5小时.还没做出来.-------
是这样的。题目很简单。但是少一点都不能正确完成。
1。N代表色子个数(输入N就能得到答案)
2。色子只有1-6
3。除去重复的组合
4。组合必须要正确
(如:3个色子,
组合开始是:
1.1.1
1.1.2
....
6.6.6
)
我当时只写出指定几个色子的方法。说白了就是循环。但就是不会写出N个色子的方法,因为N不稳定,循环次数不确定。
我不是很确定。但是总觉的递规可以解决N这个问题。
很希望有朋友可以用递规解决。(如果可以的话)
其实给出答案的朋友,用的是找规律和String的截取方法。
但我觉的正确的一次性输出想要的答案才算最佳!
很感谢回答的朋友,希望大家继续一起讨论。
以下是曾经发贴回复中,写出的实现方法!
public class DiceArith {
/**
* 数组转字符
*
* @return
*/
public static String arraysToString(String[] s) {
String t = "";
for (int i = 0; i < s.length; i++)
t += s[i];
return t;
}
/**
* 方法一
*
* @param N
*/
public static void method1(int N) {
TreeSet<String> tree = new TreeSet<String>();
long start = 1, end = 6;
for (int i = 1; i < N; i++) {
start += 1 * convert(10, i);
end += 6 * convert(10, i);
}
String[] data;
for (long j = start; j <= end; j++) {
if (expValid(j + "")) {
data = String.valueOf(j).split("");
Arrays.sort(data);
tree.add(arraysToString(data));
}
}
for (Iterator<String> t = tree.iterator(); t.hasNext();) {
String d = t.next();
System.out.println(d);
}
}
public static void main(String[] args) {
method1(3);
}
/**
* 计算平方根
*
* @param data
* @param n
* @return
*/
public static long convert(int data, int n) {
long result = 1l;
for (int i = 1; i <= n; i++)
result *= data;
return result;
}
/**
* 正则验证色子数在【1-6】范围内
*
* @param s
* @return
*/
public static boolean expValid(String s) {
Pattern p4 = Pattern.compile("^[1-6]+$");
Matcher m4 = p4.matcher(s + "");
if (m4.find())
return true;
else
return false;
}
}
分享到:
相关推荐
一次面试go语言的过程中,记录下来的题目。里面很多考点,很多来自另一个网上的面试资源。非原创,但是有一些是原创的。
最全面的面试问题:让你轻松面对每一次面试。不管大型企业还是中型企业,有这资料绝对可以攻克每个问答。
程序员面试宝典(印象加分大法)程序员面试宝典(印象加分大法)程序员面试宝典(印象加分大法)程序员面试宝典(印象加分大法)程序员面试宝典(印象加分大法)程序员面试宝典(印象加分大法)程序员面试宝典(印象...
c++面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试...
应试者预先了解面试的过程,不但信心倍增,还可以避免因不知下一步对方会问哪一类问题而惶恐焦虑。 没有预先计划的面试既是"自然发展"的,主试者看应试者的反映和表现来发问,如果是由多位主试者主持,则谁都有可能...
给大家分享一套课程,Java高级面试突围课 ,一次搞定Java中高级面试的必考点视频教程,希望对大家面试有帮助。
2021年第一次面试Java实习生经历.doc
应届大学毕业生面试应答 涉世之初面试以实在取胜... 面试自我介绍一分钟 面试之际:有时无声胜有声 面试中要慎言 小心你的话外音 实话实说别直说 面试中你能做到随机应变吗? 应聘面试,别耍“小聪明” 面 试 后:
考面试之前需要通过笔试和LAB,笔试和LAB实验题库拓扑解法在之前分享的资料里有都有题库拓扑到时下载练习一次通过很稳。本资源分享的是面试题库,用于2021年HCIE面试,面试须知: 1、面试时间一小时,一人一个小屋...
心情会影响你给人的第一印象,所以愉快的心情也能感染面试者。 四、准备几个问题 面试主要是考察毕业生对单位和职位的了解程度、毕业生的专业知识和技能,以及他们的社会意识、综合素质、敬业精神等。所以在谈话和...
第一次面试Java实习生经历.doc
程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典程序员面试宝典...
Java高级面试突围课 ,一次搞定Java中高级面试的必考点,本课采用大厂多轮面试形式贯穿主线,内容涵盖Java中高级面试的必考点、高频点、加薪点。同时融合讲师多年阿里字节考官经验,通过真实模拟不同面试场景,将面试...
GE面试经历(一)GE第一次电话面试.pdf
一次搞明白 Session、Cookie、Token,面试问题全搞定.pdf 面试中的问题一站式全搞定 在也不用头疼面试官的问题了。
阿里巴巴面试题(阿里巴巴面试题电话面试)
搞定面试官:咱们从头到尾再说一次 Java 垃圾回收(csdn)————程序
多次面试整理的技术点,有效帮助快速面试
这是我的一次去一家公司面试的时候,该公司给我出的一个面试题,该题目是一个很简单的题目。如果从逻辑上来看的话, 但是其中有很多需要注意的地方, 因为你能想到的地方,其他的面试者也是同样容易想到的,,所有...