由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一家游戏公司的新鲜面经
相关主题
再问道题a question about combination
【ms面试题】用不均匀的骰子掷出均匀的点数combinations 有没有 iterative的方法阿 ?
问一个题问个递归的问题
请教 permute vector of vectors 如何实现,谢谢大家facebook onsite过程是咋样的?(renew fb, google题)
a problem from leetcode: high efficiency algorithm for combinations problem分享面试题目
一道面试题和解法(求指点).Amazon第一轮面试
出道题。perfectPermutation输出字串permutation的time complexity是啥?
职业杯另外一道问个题
相关话题的讨论汇总
话题: int话题: stack话题: 骰子话题: ndices
进入JobHunting版参与讨论
1 (共1页)
c******t
发帖数: 391
1
今天下午电面了一家WA的游戏公司, 整个过程大约45分钟。除了一些常规概念例如多
态、hash table,问了如下一道编程题,
1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
, 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
输出为...(共6^n种)
当时感觉和word permutation相似,但想了想似乎不对,给了递归的思路但没能立刻给
出code。 不知道这题大家有没有什么idea。
2. 又考了一个替换电话号码的题,有一堆网页文件(包括html, php, xml等),需要替
换其中出现的一个指定格式电话号码。 我说了用grep+regular expression查找, 或
者用c++的boost库来匹配替换,但似乎对方不太满意,问我用什么tools实现这种批量
替换,我想了一会没答上来……
3. 之后又问了自己用过的3种设计模式
特来版上请教大家,那个骰子题有没有好的思路,另外电话号码批量替换用什么tools
比较好呢? thx!
M**u
发帖数: 10158
2
con
有没有暴雪的面经?

combination
3,
tools

【在 c******t 的大作中提到】
: 今天下午电面了一家WA的游戏公司, 整个过程大约45分钟。除了一些常规概念例如多
: 态、hash table,问了如下一道编程题,
: 1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
: , 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
: 输出为...(共6^n种)
: 当时感觉和word permutation相似,但想了想似乎不对,给了递归的思路但没能立刻给
: 出code。 不知道这题大家有没有什么idea。
: 2. 又考了一个替换电话号码的题,有一堆网页文件(包括html, php, xml等),需要替
: 换其中出现的一个指定格式电话号码。 我说了用grep+regular expression查找, 或
: 者用c++的boost库来匹配替换,但似乎对方不太满意,问我用什么tools实现这种批量

c******t
发帖数: 391
3
呵呵,我应该在公司前面加个‘小’字。
不是暴雪那一类的,是一个专做手机游戏和桌面小游戏的公司。

【在 M**u 的大作中提到】
: con
: 有没有暴雪的面经?
:
: combination
: 3,
: tools

g**e
发帖数: 6127
4
1. n位6进制数,挨个加一,从n个1加到n个6就完了
2. use sed

combination
3,

【在 c******t 的大作中提到】
: 今天下午电面了一家WA的游戏公司, 整个过程大约45分钟。除了一些常规概念例如多
: 态、hash table,问了如下一道编程题,
: 1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
: , 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
: 输出为...(共6^n种)
: 当时感觉和word permutation相似,但想了想似乎不对,给了递归的思路但没能立刻给
: 出code。 不知道这题大家有没有什么idea。
: 2. 又考了一个替换电话号码的题,有一堆网页文件(包括html, php, xml等),需要替
: 换其中出现的一个指定格式电话号码。 我说了用grep+regular expression查找, 或
: 者用c++的boost库来匹配替换,但似乎对方不太满意,问我用什么tools实现这种批量

c******t
发帖数: 391
5
sed是stream editor吧,学习了。
另外如果用6进制的话,进位以后的0怎么排除掉呢?而且还得写一个6进制数的实现?

【在 g**e 的大作中提到】
: 1. n位6进制数,挨个加一,从n个1加到n个6就完了
: 2. use sed
:
: combination
: 3,

o******e
发帖数: 74
6
1. f(n) 用来输出n个组合. 用recursive 输出 f(n-1) 一直到 f(1)
但是不知道怎么把输出的格式弄好.
g**********y
发帖数: 14569
7
public void run(int N) {
int[] a = new int[N];
permute(a, 0);
}

private void permute(int[] a, int k) {
if (k==a.length) {
for (int i=0; i System.out.print(a[i]);
}
System.out.println();
return;
}

for (int i=1; i<7; i++) {
a[k] = i;
permute(a, k+1);
}
}
f****4
发帖数: 1359
8
2个筛子的话
1 2和2 1不算是同样的点数?

【在 g**e 的大作中提到】
: 1. n位6进制数,挨个加一,从n个1加到n个6就完了
: 2. use sed
:
: combination
: 3,

c******t
发帖数: 391
9
是分开算的,因为相当于每个骰子有一个序号,所以认为不算是同样的点数

【在 f****4 的大作中提到】
: 2个筛子的话
: 1 2和2 1不算是同样的点数?

f****4
发帖数: 1359
10
哦,没注意你有写 共6^n种

【在 c******t 的大作中提到】
: 是分开算的,因为相当于每个骰子有一个序号,所以认为不算是同样的点数
相关主题
一道面试题和解法(求指点).a question about combination
出道题。perfectPermutationcombinations 有没有 iterative的方法阿 ?
职业杯另外一道问个递归的问题
进入JobHunting版参与讨论
o******e
发帖数: 74
11
高.

【在 g**********y 的大作中提到】
: public void run(int N) {
: int[] a = new int[N];
: permute(a, 0);
: }
:
: private void permute(int[] a, int k) {
: if (k==a.length) {
: for (int i=0; i: System.out.print(a[i]);
: }

i***1
发帖数: 147
12

Big Fish

【在 c******t 的大作中提到】
: 呵呵,我应该在公司前面加个‘小’字。
: 不是暴雪那一类的,是一个专做手机游戏和桌面小游戏的公司。

r******n
发帖数: 170
13
看来楼主跟我面到一起去了,我这题当时也没答出来,事后写的:
//output dnum dices permutation as a string
#include
#include
using namespace std;
void throwDice(int dnum, string out_str, int level)
{
if (level == dnum)
{
cout< return;
}
for (int i=1; i<7;i++)
{
out_str+=(char)(i+'0');
throwDice(dnum,out_str, level+1);
out_str.resize(out_str.size()-1);
}
}
int main()
{
string out_str;
throwDice(6, out_str, 0);
return 1;
}
m****t
发帖数: 555
14
第一题不就是那个经典的电话面板上给定一个电话号码,返回所有对应字母组合
c******t
发帖数: 391
15
赞! 你的resize()是为了去掉末尾的'\0'?

【在 r******n 的大作中提到】
: 看来楼主跟我面到一起去了,我这题当时也没答出来,事后写的:
: //output dnum dices permutation as a string
: #include
: #include
: using namespace std;
: void throwDice(int dnum, string out_str, int level)
: {
: if (level == dnum)
: {
: cout<
h*********n
发帖数: 11319
16
是为了在递归树里退回到上一个分叉点。。。

【在 c******t 的大作中提到】
: 赞! 你的resize()是为了去掉末尾的'\0'?
k***d
发帖数: 4
17
#include
#define N 3
#define MAXN 10
void gen(int level){
int i, j;
static int dice[MAXN]; /* global array also works */

if(level <= N){
for(i = 1; i <= 6; i++){
dice[level] = i;
gen(level+1);
}
}else{
for(j = 1; j <= N; j++){
printf("%d", dice[j]);
}
printf("\n");
}
}
int main(){
gen(1);
return 0;
}
n*****e
发帖数: 115
18
鸡蛋里挑骨头。
大家做算法题的时候,会考虑异常情况吗?
譬如函数throwDice中的参数问题:如果输入dnum
【在 r******n 的大作中提到】
: 看来楼主跟我面到一起去了,我这题当时也没答出来,事后写的:
: //output dnum dices permutation as a string
: #include
: #include
: using namespace std;
: void throwDice(int dnum, string out_str, int level)
: {
: if (level == dnum)
: {
: cout<
k***d
发帖数: 4
19
我写的那个code,如果输入非法(N<1),就什么都不输出(除了一个回车)。

【在 n*****e 的大作中提到】
: 鸡蛋里挑骨头。
: 大家做算法题的时候,会考虑异常情况吗?
: 譬如函数throwDice中的参数问题:如果输入dnum
c******t
发帖数: 391
20
没有理解这里else的作用是什么,能不能解释一下? thx

【在 k***d 的大作中提到】
: #include
: #define N 3
: #define MAXN 10
: void gen(int level){
: int i, j;
: static int dice[MAXN]; /* global array also works */
:
: if(level <= N){
: for(i = 1; i <= 6; i++){
: dice[level] = i;

相关主题
facebook onsite过程是咋样的?(renew fb, google题)输出字串permutation的time complexity是啥?
分享面试题目问个题
Amazon第一轮面试问个Amazon面试题
进入JobHunting版参与讨论
k***d
发帖数: 4
21
就是到了递归树的叶节点了,输出结果。

【在 c******t 的大作中提到】
: 没有理解这里else的作用是什么,能不能解释一下? thx
r******n
发帖数: 170
22
follow up 一下这家的面试,很快给了我2电面,最近告诉我悲剧。
2面是个senior SDE
问了4题,都是常见题:
1.如何design vending machine? 我大概说的key class为product, payment, machine
。follow up的questions如,如何知道还剩多少coke之类的
2. 如何design chess game? 如何知道谁赢了?board是否该为个class等。
3. find common longest substring in two strings.似乎是个DP经典问题。
http://en.wikipedia.org/wiki/Longest_common_substring_problem
我当时只说了brute force的方法,被要求优化
4.如何搜索遍历一个棋盘,假设只能走4领域。要求:不能重复访问已经走过的node.我说的遍历,通过visited flag防止重复。结果要求不能做visited flag,他给了提示后,原来算是mark previous node,然后不往回走。事后想想认为这样子后面还是有可能会转回原位置的说。
估计还是栽在design上, move on了

combination
3,

【在 c******t 的大作中提到】
: 今天下午电面了一家WA的游戏公司, 整个过程大约45分钟。除了一些常规概念例如多
: 态、hash table,问了如下一道编程题,
: 1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
: , 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
: 输出为...(共6^n种)
: 当时感觉和word permutation相似,但想了想似乎不对,给了递归的思路但没能立刻给
: 出code。 不知道这题大家有没有什么idea。
: 2. 又考了一个替换电话号码的题,有一堆网页文件(包括html, php, xml等),需要替
: 换其中出现的一个指定格式电话号码。 我说了用grep+regular expression查找, 或
: 者用c++的boost库来匹配替换,但似乎对方不太满意,问我用什么tools实现这种批量

g*****i
发帖数: 2162
23
longest common substring用suffix tree做似乎比dp好.
第四题mark previous node什么意思?我感觉和visited flag差别不大吧

machine
我说的遍历,通过visited flag防止重复。结果要求不能做visited flag,他给了提示
后,原来算是mark previous node,然后不往回走。事后想想认为这样子后面还是有可
能会转回原位置的说。

【在 r******n 的大作中提到】
: follow up 一下这家的面试,很快给了我2电面,最近告诉我悲剧。
: 2面是个senior SDE
: 问了4题,都是常见题:
: 1.如何design vending machine? 我大概说的key class为product, payment, machine
: 。follow up的questions如,如何知道还剩多少coke之类的
: 2. 如何design chess game? 如何知道谁赢了?board是否该为个class等。
: 3. find common longest substring in two strings.似乎是个DP经典问题。
: http://en.wikipedia.org/wiki/Longest_common_substring_problem
: 我当时只说了brute force的方法,被要求优化
: 4.如何搜索遍历一个棋盘,假设只能走4领域。要求:不能重复访问已经走过的node.我说的遍历,通过visited flag防止重复。结果要求不能做visited flag,他给了提示后,原来算是mark previous node,然后不往回走。事后想想认为这样子后面还是有可能会转回原位置的说。

w*****3
发帖数: 101
24
thx
a*******3
发帖数: 15
25
zynga
g*******a
发帖数: 149
26
Thanks for sharing
C***U
发帖数: 2406
27
1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
, 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
输出为...(共6^n种)
====================================================================
这个题目的思路和all combination的思路是一样的。
首先把第一个骰子可能的情况都放进去,也就是说你有
1 2 3 4 5 6
然后把第六个骰子的可能放进去,你就得到
1 1 | 2 1 | 3 1 | 4 1 | 5 1 |6 1
...
1 6 | 2 6 | 3 6 | 4 6 | 5 6 | 6 6
以此类推,其实就是DP
h*******e
发帖数: 1377
28
面一家游戏公司让我做两个三维的球交面的 profile~~ 都没听过的东西。
g****y
发帖数: 240
29
骰子那题就是两个vector叉乘吧。base = [[1],[2],[3],[4],[5],[6]]
n的combination = (n-1)的combination 叉乘 base
def print_combination_by_line(n):
base = [[1],[2],[3],[4],[5],[6]]
last = [[]]
i = 1
while i <= n:
result = [x + y for x in base for y in last] #cross product
print("n=", i, result)
last = result[:]
i += 1
f*******4
发帖数: 64
30
古老的挖坟
骰子这题可以对<=6^n-1进行6进制位表示

combination
3,

【在 C***U 的大作中提到】
: 1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
: , 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
: 输出为...(共6^n种)
: ====================================================================
: 这个题目的思路和all combination的思路是一样的。
: 首先把第一个骰子可能的情况都放进去,也就是说你有
: 1 2 3 4 5 6
: 然后把第六个骰子的可能放进去,你就得到
: 1 1 | 2 1 | 3 1 | 4 1 | 5 1 |6 1
: ...

相关主题
一道题:Vertical Sticks【ms面试题】用不均匀的骰子掷出均匀的点数
这题也可以DP 解吧?问一个题
再问道题请教 permute vector of vectors 如何实现,谢谢大家
进入JobHunting版参与讨论
b***e
发帖数: 383
31
骰子问题
public class NDices {

/**
* @param length : current digit's length
* @param n: number of dices
* @param stack: stack is used to save the result
*/
public static void ndices(int length, int n, Stack stack) {
if (length == n) {
System.out.println(stack.toString());
return ;
}
for (int i = 1; i <= 6; i++ ) {
stack.push(i);
ndices(length + 1, n, stack);
stack.pop();
}
}

public static void main(String[] args) {
Stack stack = new Stack();
ndices(0, 3, stack);
}
}
h*******e
发帖数: 1377
32
做3D的portfolio
b*******e
发帖数: 6389
33
这些都是高中信息学竞赛的题目。

【在 c******t 的大作中提到】
: 今天下午电面了一家WA的游戏公司, 整个过程大约45分钟。除了一些常规概念例如多
: 态、hash table,问了如下一道编程题,
: 1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
: , 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
: 输出为...(共6^n种)
: 当时感觉和word permutation相似,但想了想似乎不对,给了递归的思路但没能立刻给
: 出code。 不知道这题大家有没有什么idea。
: 2. 又考了一个替换电话号码的题,有一堆网页文件(包括html, php, xml等),需要替
: 换其中出现的一个指定格式电话号码。 我说了用grep+regular expression查找, 或
: 者用c++的boost库来匹配替换,但似乎对方不太满意,问我用什么tools实现这种批量

q****x
发帖数: 7404
34
2. sed

combination
3,

【在 c******t 的大作中提到】
: 今天下午电面了一家WA的游戏公司, 整个过程大约45分钟。除了一些常规概念例如多
: 态、hash table,问了如下一道编程题,
: 1. 有n个六面骰子,点数均为1到6,编写一个函数,按行输出所有可能的combination
: , 比如n=1, 输出为1, 2, 3, 4, 5, 6; n=2, 输出为1 1, 1 2, ..., 6 5, 6 6; n=3,
: 输出为...(共6^n种)
: 当时感觉和word permutation相似,但想了想似乎不对,给了递归的思路但没能立刻给
: 出code。 不知道这题大家有没有什么idea。
: 2. 又考了一个替换电话号码的题,有一堆网页文件(包括html, php, xml等),需要替
: 换其中出现的一个指定格式电话号码。 我说了用grep+regular expression查找, 或
: 者用c++的boost库来匹配替换,但似乎对方不太满意,问我用什么tools实现这种批量

e****e
发帖数: 418
35
Nice work.
Since length = stack.size(), the parameter length on method is not needed.
So it can be
public static void ndices(int n, Stack stack){
...
}

{

【在 b***e 的大作中提到】
: 骰子问题
: public class NDices {
:
: /**
: * @param length : current digit's length
: * @param n: number of dices
: * @param stack: stack is used to save the result
: */
: public static void ndices(int length, int n, Stack stack) {
: if (length == n) {

1 (共1页)
进入JobHunting版参与讨论
相关主题
问个题a problem from leetcode: high efficiency algorithm for combinations problem
问个Amazon面试题一道面试题和解法(求指点).
一道题:Vertical Sticks出道题。perfectPermutation
这题也可以DP 解吧?职业杯另外一道
再问道题a question about combination
【ms面试题】用不均匀的骰子掷出均匀的点数combinations 有没有 iterative的方法阿 ?
问一个题问个递归的问题
请教 permute vector of vectors 如何实现,谢谢大家facebook onsite过程是咋样的?(renew fb, google题)
相关话题的讨论汇总
话题: int话题: stack话题: 骰子话题: ndices