由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G家电面被拒,请帮助分析原因
相关主题
amazon 第一轮电话面试我花了一个小时才调通过这个程序
顶风上来问道题:一个很大char[], 如何in-place 删除重复元素Amazon电面问题求大牛解答
Google Intern面经顺求bless~G家最新电面
Google实习第一轮电话面试总结今天的校园面试
amazon 电面题目A家实习面经
ebay电面面经,攒人品,求好运pure storage 面经 已挂
google 电面大家在编简单的程序时能做到bug free吗?
A家FAILED掉了,看来银行也没戏了。问了一算法题汗,不问算法
相关话题的讨论汇总
话题: count话题: long话题: int话题: input话题: 字符串
进入JobHunting版参与讨论
1 (共1页)
t*****s
发帖数: 14
1
2周前电面G家,一直没有消息,昨天果然收到据信。说是找不到和我背景match的职位
,blah blah,我觉得都是外交语言。我因为自己觉得电面过程还比较顺利,所以想拿
出来,请大家帮着分析分析,到底是什么原因被拒。
看网上一般电面都是连着两轮,但我只有一次。面试者看名字是白人,人很nice,说话
也比较清楚。一开始让我介绍了一下我简历中提到的一个项目,然后就进入coding。两
道题都是基本题。第一题是统计一个字符串里每个字符出现的次数。我先问了是ascii
还是unicode,他说unicode吧,我想这基本就是O(n)的算法,没有什么花样可以变,就
把代码写出来。他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,我于
是把数组和有关变量都改成long long。他说如果还要长怎么办,我一开始没有想到怎
么办,后来他提醒说指针,于是我理解他是希望直接用指针来index。第二题具体内容
有点忘了,大致是如何在脚本语言里动态获得对象的类。他问我能否用javascript写(
他自己是做javascript安全的),我因为有一段时间没用js,就提议用python写,他说
没问题。写完后他指出一个小问题后。coding部分也就过去了。然后就是让我提问,我
就问了他所在的team,他参与的项目组我正好有一点了解,所以和他简单聊了两句,整
个面试就结束了。我自己实在看不出问题在哪里,
另外,我背景是今年cs phd毕业。方向是移动平台的security。我在简历中比较倾向移
动平台。简历是通过同学递进去的,所以也就顺利拿到电面了。没想到连onsite都没有
拿到。所以特地拿出来,请高人帮助分析一下原因。
p*****2
发帖数: 21240
2
第一题你怎么做的?
g***l
发帖数: 18555
3
PHD没工作过,随便有个工作经验的可能就排你前面了,没什么大惊小怪的,以后要注
意研究公司的招人广告,尽量发现内部消息,做什么,需要什么样的人,他们需要解决
什么问题,现在到了什么阶段,公司里有没有老中,去打探一下情况。很多公司还是很
在乎CONNECTION,你的兴趣,热情,有时候可以弥补没经验和技术差一点的欠缺。老中
给人的印象是NERDY,只会闷头干活,不关心公司的发展,不爱跟同事交流,缺少
POSITIVE的ATTITUDE,说话不利索,支支吾吾,这些都需要克服。
w****x
发帖数: 2483
4
"他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,"
不就是bitmap solution吗, 再长还不是一样算??? 没理解
p*****2
发帖数: 21240
5

怎么用bitmap呢?

【在 w****x 的大作中提到】
: "他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,"
: 不就是bitmap solution吗, 再长还不是一样算??? 没理解

a****n
发帖数: 1887
6
如果没理解对方的问题,不要急着回答,多问问。
z*********8
发帖数: 2070
7
要统计次数, 而不仅仅是出现与否, bitmap不行吗?

【在 w****x 的大作中提到】
: "他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,"
: 不就是bitmap solution吗, 再长还不是一样算??? 没理解

h**********l
发帖数: 6342
8
是说遍历string要用pointer? C string?

ascii

【在 t*****s 的大作中提到】
: 2周前电面G家,一直没有消息,昨天果然收到据信。说是找不到和我背景match的职位
: ,blah blah,我觉得都是外交语言。我因为自己觉得电面过程还比较顺利,所以想拿
: 出来,请大家帮着分析分析,到底是什么原因被拒。
: 看网上一般电面都是连着两轮,但我只有一次。面试者看名字是白人,人很nice,说话
: 也比较清楚。一开始让我介绍了一下我简历中提到的一个项目,然后就进入coding。两
: 道题都是基本题。第一题是统计一个字符串里每个字符出现的次数。我先问了是ascii
: 还是unicode,他说unicode吧,我想这基本就是O(n)的算法,没有什么花样可以变,就
: 把代码写出来。他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,我于
: 是把数组和有关变量都改成long long。他说如果还要长怎么办,我一开始没有想到怎
: 么办,后来他提醒说指针,于是我理解他是希望直接用指针来index。第二题具体内容

g**********y
发帖数: 14569
9
我猜问题出在第一个上。
G的电面通常45分钟,会问两个coding题。第一个题判断你的水平,如果解答是他期望
的或者能解释得过去的,他就会问更难的。第二题做完一般就没时间了。如果你做到第
3道,说明你解得很快,多半会过关。
如果第一题他觉得你的方向不对或者基本功不够,第二题就是给你的最后一次机会,也
可能他已经判断不行了,剩下就是走过场。
象你说的第一题这种,问题本身不难,但是可以变化的条件很多,需要你提问把这些条
件限制住。在交流过程里,如果你问得不够多,没有问清楚,或者写得不clean, 他可
能认为你基本训练不够。第二题随便找一个,按理说他期望你能马上回答,结果你没答
上来,转到了python上。他的报告写上去就很一般,导致杯具。
这种情况发生,跟你真正水平关系不大,更多是你跟面试官交流的问题。

ascii

【在 t*****s 的大作中提到】
: 2周前电面G家,一直没有消息,昨天果然收到据信。说是找不到和我背景match的职位
: ,blah blah,我觉得都是外交语言。我因为自己觉得电面过程还比较顺利,所以想拿
: 出来,请大家帮着分析分析,到底是什么原因被拒。
: 看网上一般电面都是连着两轮,但我只有一次。面试者看名字是白人,人很nice,说话
: 也比较清楚。一开始让我介绍了一下我简历中提到的一个项目,然后就进入coding。两
: 道题都是基本题。第一题是统计一个字符串里每个字符出现的次数。我先问了是ascii
: 还是unicode,他说unicode吧,我想这基本就是O(n)的算法,没有什么花样可以变,就
: 把代码写出来。他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,我于
: 是把数组和有关变量都改成long long。他说如果还要长怎么办,我一开始没有想到怎
: 么办,后来他提醒说指针,于是我理解他是希望直接用指针来index。第二题具体内容

p*****2
发帖数: 21240
10
我还是不明白第一题楼主怎么做的。
相关主题
ebay电面面经,攒人品,求好运我花了一个小时才调通过这个程序
google 电面Amazon电面问题求大牛解答
A家FAILED掉了,看来银行也没戏了。问了一算法题G家最新电面
进入JobHunting版参与讨论
l*********8
发帖数: 4642
11
Did you use a hash table to save the character counts?

ascii

【在 t*****s 的大作中提到】
: 2周前电面G家,一直没有消息,昨天果然收到据信。说是找不到和我背景match的职位
: ,blah blah,我觉得都是外交语言。我因为自己觉得电面过程还比较顺利,所以想拿
: 出来,请大家帮着分析分析,到底是什么原因被拒。
: 看网上一般电面都是连着两轮,但我只有一次。面试者看名字是白人,人很nice,说话
: 也比较清楚。一开始让我介绍了一下我简历中提到的一个项目,然后就进入coding。两
: 道题都是基本题。第一题是统计一个字符串里每个字符出现的次数。我先问了是ascii
: 还是unicode,他说unicode吧,我想这基本就是O(n)的算法,没有什么花样可以变,就
: 把代码写出来。他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,我于
: 是把数组和有关变量都改成long long。他说如果还要长怎么办,我一开始没有想到怎
: 么办,后来他提醒说指针,于是我理解他是希望直接用指针来index。第二题具体内容

m***n
发帖数: 2154
12
如果字符串相当长,任何一个数据结构都存不下,那就存一个pointer,然后用string
计数就是了。 我感觉这题目的trick就在这里
l*********8
发帖数: 4642
13
You said, ",我于是把数组和有关变量都改成long long".
What did you use the 数组 for?
w****x
发帖数: 2483
14

不就是int rec[0xFFFF]计数吗, 扫一遍字符串到*p == 0的时候停止,
和长度有啥关系,难道是我理解错了

【在 p*****2 的大作中提到】
: 我还是不明白第一题楼主怎么做的。
p*****2
发帖数: 21240
15

Java有BigInteger可以存。

【在 m***n 的大作中提到】
: 如果字符串相当长,任何一个数据结构都存不下,那就存一个pointer,然后用string
: 计数就是了。 我感觉这题目的trick就在这里

m***n
发帖数: 2154
16
BigInteger估计也就是用一个vector实现的。

【在 p*****2 的大作中提到】
:
: Java有BigInteger可以存。

p*****2
发帖数: 21240
17

太长了,int装不下。

【在 w****x 的大作中提到】
:
: 不就是int rec[0xFFFF]计数吗, 扫一遍字符串到*p == 0的时候停止,
: 和长度有啥关系,难道是我理解错了

p*****2
发帖数: 21240
18

你这个东西是bitmap吗?长度是不是要+1呢?

【在 w****x 的大作中提到】
:
: 不就是int rec[0xFFFF]计数吗, 扫一遍字符串到*p == 0的时候停止,
: 和长度有啥关系,难道是我理解错了

w****x
发帖数: 2483
19

Unicode就是2^16个元素, 一个2字节.
我指的是bitmap solution, 不一定是一个个bit的那种, 广义的那种用下标直接定位的
类似hash的方法. 不明白和长度有什么关系, 再长也就是那个数组吧, 只要不考虑单个
元素over flow的情况, 就算考虑那就用字符串代表int

【在 p*****2 的大作中提到】
:
: 你这个东西是bitmap吗?长度是不是要+1呢?

p*****2
发帖数: 21240
20

如果是0xFFFF,你的数组就OF了吧。

【在 w****x 的大作中提到】
:
: Unicode就是2^16个元素, 一个2字节.
: 我指的是bitmap solution, 不一定是一个个bit的那种, 广义的那种用下标直接定位的
: 类似hash的方法. 不明白和长度有什么关系, 再长也就是那个数组吧, 只要不考虑单个
: 元素over flow的情况, 就算考虑那就用字符串代表int

相关主题
今天的校园面试大家在编简单的程序时能做到bug free吗?
A家实习面经汗,不问算法
pure storage 面经 已挂请教:C++, 忽略大小写的字符串比较
进入JobHunting版参与讨论
w****x
发帖数: 2483
21

也就是2^16 * sizeof(int) == 262 144个字节
不到0.3MB, VS默认的一个线程对应的堆栈好像是2MB, 不会溢出

【在 p*****2 的大作中提到】
:
: 如果是0xFFFF,你的数组就OF了吧。

p*****2
发帖数: 21240
22

我的意思是你的数组的长度是不是少了一个呢?你定义的0xFFFF, 只能装到0xFFFE吧。

【在 w****x 的大作中提到】
:
: 也就是2^16 * sizeof(int) == 262 144个字节
: 不到0.3MB, VS默认的一个线程对应的堆栈好像是2MB, 不会溢出

w****x
发帖数: 2483
23
极端情况下如果非常长, 而且字符都是同一个那就用new出来的字符串代表吧...
char* rec[0xFFFF]
w****x
发帖数: 2483
24

Unicode的范围不是0-0xFFFE吗?? 就像ASCII一共有256个,
范围是0-255, 正好对应int rec[256]的index 0~255

【在 p*****2 的大作中提到】
:
: 我的意思是你的数组的长度是不是少了一个呢?你定义的0xFFFF, 只能装到0xFFFE吧。

p*****2
发帖数: 21240
25

256是0xFF+1

【在 w****x 的大作中提到】
:
: Unicode的范围不是0-0xFFFE吗?? 就像ASCII一共有256个,
: 范围是0-255, 正好对应int rec[256]的index 0~255

w****x
发帖数: 2483
26
oh, 是啊, 昏头了, 用int rec[0xFFFF+1]
l*********8
发帖数: 4642
27
Unicode可以有四个字节吧?

【在 w****x 的大作中提到】
: oh, 是啊, 昏头了, 用int rec[0xFFFF+1]
p*****2
发帖数: 21240
28

C里边好像就是两个吧?w_char。不知道其他语言什么情况。

【在 l*********8 的大作中提到】
: Unicode可以有四个字节吧?
w****x
发帖数: 2483
29

如果编码格式是UTF-8呢,这题该怎么做

【在 p*****2 的大作中提到】
:
: C里边好像就是两个吧?w_char。不知道其他语言什么情况。

p*****2
发帖数: 21240
30

还是一样的做法吧?有区别吗?

【在 w****x 的大作中提到】
:
: 如果编码格式是UTF-8呢,这题该怎么做

相关主题
一道微软题顶风上来问道题:一个很大char[], 如何in-place 删除重复元素
请教一个设计test case的问题Google Intern面经顺求bless~
amazon 第一轮电话面试Google实习第一轮电话面试总结
进入JobHunting版参与讨论
w****x
发帖数: 2483
31

UTF8是1到6个字节变长, 是不是要设计hashtable来做了.
设计6个hashtable 哈哈

【在 p*****2 的大作中提到】
:
: 还是一样的做法吧?有区别吗?

p*****2
发帖数: 21240
32

不懂UTF8。如果变长就用hashtable就好了。应该一个就够了吧。UTF8字符如何表达呢


【在 w****x 的大作中提到】
:
: UTF8是1到6个字节变长, 是不是要设计hashtable来做了.
: 设计6个hashtable 哈哈

t*****s
发帖数: 14
33
我当时没有保存具体的代码。但是方法大致就是
int* count_string(wchar *input){
int* count = new int[65536];
int i = 0;
while(input[i]!=0)
count[input[i]]++;
return count;
}
这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很
长,我就把count改成long long*,i 改成 long long. 然后他说万一long long 还是
不够长。我说那就考虑把字符串拆成几段吧。他明显不喜欢这个提议,说再长,有些东
西是不会变的。 我一开始没理解,后来他提到指针,我想了一下,这次理解了。他是
想直接用指针操作来取消i。我说了这个意思,他立刻说对。也没有要求我再写代码。
要写出来的话,应该是
int* count_string(wchar *input){
int* count = new int[65536];
while(*input!=0)
count[*input++]++;
return count;
}
t*****s
发帖数: 14
34
我当时没有保存具体的代码。但是方法大致就是
int* count_string(wchar *input){
int* count = new int[65536];
int i = 0;
while(input[i]!=0)
count[input[i]]++;
return count;
}
这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很
长,我就把count改成long long*,i 改成 long long. 然后他说万一long long 还是
不够长。我说那就考虑把字符串拆成几段吧。他明显不喜欢这个提议,说再长,有些东
西是不会变的。 我一开始没理解,后来他提到指针,我想了一下,这次理解了。他是
想直接用指针操作来取消i。我说了这个意思,他立刻说对。也没有要求我再写代码。
要写出来的话,应该是
int* count_string(wchar *input){
int* count = new int[65536];
while(*input!=0)
count[*input++]++;
return count;
}
t*****s
发帖数: 14
35
我当时没有保存具体的代码。但是方法大致就是
int* count_string(wchar *input){
int* count = new int[65536];
int i = 0;
while(input[i]!=0)
count[input[i]]++;
return count;
}
这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很
长,我就把count改成long long*,i 改成 long long. 然后他说万一long long 还是
不够长。我说那就考虑把字符串拆成几段吧。他明显不喜欢这个提议,说再长,有些东
西是不会变的。 我一开始没理解,后来他提到指针,我想了一下,这次理解了。他是
想直接用指针操作来取消i。我说了这个意思,他立刻说对。也没有要求我再写代码。
要写出来的话,应该是
int* count_string(wchar *input){
int* count = new int[65536];
while(*input!=0)
count[*input++]++;
return count;
}
t*****s
发帖数: 14
36
我当时没有保存具体的代码。但是方法大致就是
int* count_string(wchar *input){
int* count = new int[65536];
int i = 0;
while(input[i]!=0)
count[input[i]]++;
return count;
}
这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很
长,我就把count改成long long*,i 改成 long long. 然后他说万一long long 还是
不够长。我说那就考虑把字符串拆成几段吧。他明显不喜欢这个提议,说再长,有些东
西是不会变的。 我一开始没理解,后来他提到指针,我想了一下,这次理解了。他是
想直接用指针操作来取消i。我说了这个意思,他立刻说对。也没有要求我再写代码。
要写出来的话,应该是
int* count_string(wchar *input){
int* count = new int[65536];
while(*input!=0)
count[*input++]++;
return count;
}
t*****s
发帖数: 14
37

我当时没有保存具体的代码。但是方法大致就是
int* count_string(wchar *input){
int* count = new int[65536];
int i = 0;
while(input[i]!=0)
count[input[i]]++;
return count;
}
这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很
长,我就把count改成long long*,i 改成 long long. 然后他说万一long long 还是
不够长。我说那就考虑把字符串拆成几段吧。他明显不喜欢这个提议,说再长,有些东
西是不会变的。 我一开始没理解,后来他提到指针,我想了一下,这次理解了。他是
想直接用指针操作来取消i。我说了这个意思,他立刻说对。也没有要求我再写代码。
要写出来的话,应该是
int* count_string(wchar *input){
int* count = new int[65536];
while(*input!=0)
count[*input++]++;
return count;
}

【在 p*****2 的大作中提到】
:
: 不懂UTF8。如果变长就用hashtable就好了。应该一个就够了吧。UTF8字符如何表达呢
: ?

w****x
发帖数: 2483
38

你改成pointer一样overflow啊, 他的意思是比如说字符串空间超过4GB?? 那内存装不下要读文件
啊, 啥意思到底....

【在 t*****s 的大作中提到】
: 我当时没有保存具体的代码。但是方法大致就是
: int* count_string(wchar *input){
: int* count = new int[65536];
: int i = 0;
: while(input[i]!=0)
: count[input[i]]++;
: return count;
: }
: 这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
: 一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很

v***6
发帖数: 42
39
问个不相关的
移动平台的security, 那是在做什么?
p*****2
发帖数: 21240
40

明白了。多谢。原来trick在这里。但是long long可能不够吗?现在系统不就是64位的
吗?怎么可能不够?

【在 t*****s 的大作中提到】
: 我当时没有保存具体的代码。但是方法大致就是
: int* count_string(wchar *input){
: int* count = new int[65536];
: int i = 0;
: while(input[i]!=0)
: count[input[i]]++;
: return count;
: }
: 这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
: 一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很

相关主题
Google实习第一轮电话面试总结google 电面
amazon 电面题目A家FAILED掉了,看来银行也没戏了。问了一算法题
ebay电面面经,攒人品,求好运我花了一个小时才调通过这个程序
进入JobHunting版参与讨论
p**o
发帖数: 1012
41
第一题map reduce行不?并发行不?非常长就是单机内存不够用吧

ascii

【在 t*****s 的大作中提到】
: 2周前电面G家,一直没有消息,昨天果然收到据信。说是找不到和我背景match的职位
: ,blah blah,我觉得都是外交语言。我因为自己觉得电面过程还比较顺利,所以想拿
: 出来,请大家帮着分析分析,到底是什么原因被拒。
: 看网上一般电面都是连着两轮,但我只有一次。面试者看名字是白人,人很nice,说话
: 也比较清楚。一开始让我介绍了一下我简历中提到的一个项目,然后就进入coding。两
: 道题都是基本题。第一题是统计一个字符串里每个字符出现的次数。我先问了是ascii
: 还是unicode,他说unicode吧,我想这基本就是O(n)的算法,没有什么花样可以变,就
: 把代码写出来。他检查后觉得没有问题,然后问我如果字符串非常长的话怎么办,我于
: 是把数组和有关变量都改成long long。他说如果还要长怎么办,我一开始没有想到怎
: 么办,后来他提醒说指针,于是我理解他是希望直接用指针来index。第二题具体内容

c****p
发帖数: 6474
42
对面的题如果真这么出的话……我表示很无语。。。。

【在 p*****2 的大作中提到】
:
: 明白了。多谢。原来trick在这里。但是long long可能不够吗?现在系统不就是64位的
: 吗?怎么可能不够?

A**u
发帖数: 2458
43
晕 是这样啊
看来英语太重要啦

【在 t*****s 的大作中提到】
: 我当时没有保存具体的代码。但是方法大致就是
: int* count_string(wchar *input){
: int* count = new int[65536];
: int i = 0;
: while(input[i]!=0)
: count[input[i]]++;
: return count;
: }
: 这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
: 一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很

p*****2
发帖数: 21240
44

是呀。里边应该还是有东西没弄清除。

【在 c****p 的大作中提到】
: 对面的题如果真这么出的话……我表示很无语。。。。
l*********8
发帖数: 4642
45
我猜面试官可能还有的trick或者考点没说呢。

【在 p*****2 的大作中提到】
:
: 是呀。里边应该还是有东西没弄清除。

y****n
发帖数: 743
46
1. 对于count出界没做处理,比如某字符出现过10万次
2. int对于不同的系统和编译器有不同的长度定义
3. 为什么不用unsigned?
4. 使用数组,对空间造成浪费
5. 做题之前应该询问对方:针对空间优化还是针对时间优化?
6. 没有做输入检查,比如input为NULL
7. 当对方问如果字符串超长如何优化时?对方显然不是问你那个数据类型表示更大的
整数。对方是问你有没有优化的方法。
8. 面试的整个过程都是在面试,无论对方说“对”或“错”或“表示满意”,都有可
能是误导。

【在 t*****s 的大作中提到】
: 我当时没有保存具体的代码。但是方法大致就是
: int* count_string(wchar *input){
: int* count = new int[65536];
: int i = 0;
: while(input[i]!=0)
: count[input[i]]++;
: return count;
: }
: 这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
: 一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很

B***i
发帖数: 724
47
忍不住跳出来吐槽一下。
工作中少有人会这么写的。
我才面试官的意思是用map reduce的方法。
被面试的时候就要问他 那个字符到底长到什么程度。 如果是T级的话, 就要用并行方
法算了。

【在 t*****s 的大作中提到】
: 我当时没有保存具体的代码。但是方法大致就是
: int* count_string(wchar *input){
: int* count = new int[65536];
: int i = 0;
: while(input[i]!=0)
: count[input[i]]++;
: return count;
: }
: 这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
: 一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很

W*******e
发帖数: 1268
48

哥们,咋觉得你写了个死循环呢
另外那个大数组用的不好,如果只输入几个字符也要分配那么多空间浪费很多。如果你
面的是嵌入式系统,内存总是很有限的。估计人是想你用指针做过动态链表之类的。

【在 t*****s 的大作中提到】
: 我当时没有保存具体的代码。但是方法大致就是
: int* count_string(wchar *input){
: int* count = new int[65536];
: int i = 0;
: while(input[i]!=0)
: count[input[i]]++;
: return count;
: }
: 这应该算是bitmap吧。 我没有用hashtable,这里似乎也没必要用hash table吧。因为
: 一开始并没有说字符串很长,所以我就从一个简单的代码开始。后来他说如果字符串很

x*******5
发帖数: 152
49
同意,如果字符串长到什么都放不下(long long, 64bit),这个在现实中很有用吧.
ps. 在google的关于map-reduce的paper
MapReduce: Simplified Data Processing on Large Clusters
中间2.1的example用的就是这个例子:distributed count the frequency of a word

【在 p**o 的大作中提到】
: 第一题map reduce行不?并发行不?非常长就是单机内存不够用吧
:
: ascii

w*********l
发帖数: 1337
50
这些都不是理由。照你这么说fresh phd根本没活路了。

【在 g***l 的大作中提到】
: PHD没工作过,随便有个工作经验的可能就排你前面了,没什么大惊小怪的,以后要注
: 意研究公司的招人广告,尽量发现内部消息,做什么,需要什么样的人,他们需要解决
: 什么问题,现在到了什么阶段,公司里有没有老中,去打探一下情况。很多公司还是很
: 在乎CONNECTION,你的兴趣,热情,有时候可以弥补没经验和技术差一点的欠缺。老中
: 给人的印象是NERDY,只会闷头干活,不关心公司的发展,不爱跟同事交流,缺少
: POSITIVE的ATTITUDE,说话不利索,支支吾吾,这些都需要克服。

相关主题
Amazon电面问题求大牛解答A家实习面经
G家最新电面pure storage 面经 已挂
今天的校园面试大家在编简单的程序时能做到bug free吗?
进入JobHunting版参与讨论
t*****s
发帖数: 14
51

真心感谢。都是很好的point。

【在 y****n 的大作中提到】
: 1. 对于count出界没做处理,比如某字符出现过10万次
: 2. int对于不同的系统和编译器有不同的长度定义
: 3. 为什么不用unsigned?
: 4. 使用数组,对空间造成浪费
: 5. 做题之前应该询问对方:针对空间优化还是针对时间优化?
: 6. 没有做输入检查,比如input为NULL
: 7. 当对方问如果字符串超长如何优化时?对方显然不是问你那个数据类型表示更大的
: 整数。对方是问你有没有优化的方法。
: 8. 面试的整个过程都是在面试,无论对方说“对”或“错”或“表示满意”,都有可
: 能是误导。

t*****s
发帖数: 14
52
Map reduce我也提了。但他不是上来就明确提出字符串长度,所以我也是从简单代码开
始。

【在 p**o 的大作中提到】
: 第一题map reduce行不?并发行不?非常长就是单机内存不够用吧
:
: ascii

m****e
发帖数: 255
53
Google indeed is a very snobbish company.

【在 w*********l 的大作中提到】
: 这些都不是理由。照你这么说fresh phd根本没活路了。
w****x
发帖数: 2483
54

就面试那么点时间考虑这么多问题, 等考虑好了时间也过了!

【在 y****n 的大作中提到】
: 1. 对于count出界没做处理,比如某字符出现过10万次
: 2. int对于不同的系统和编译器有不同的长度定义
: 3. 为什么不用unsigned?
: 4. 使用数组,对空间造成浪费
: 5. 做题之前应该询问对方:针对空间优化还是针对时间优化?
: 6. 没有做输入检查,比如input为NULL
: 7. 当对方问如果字符串超长如何优化时?对方显然不是问你那个数据类型表示更大的
: 整数。对方是问你有没有优化的方法。
: 8. 面试的整个过程都是在面试,无论对方说“对”或“错”或“表示满意”,都有可
: 能是误导。

t*****s
发帖数: 14
55
没错,但等我提出后面那种方案后,他立刻表示对,然后就进展到下一题。并没有给我
机会讨论这个问题。

不下要读文件

【在 w****x 的大作中提到】
:
: 就面试那么点时间考虑这么多问题, 等考虑好了时间也过了!

w****t
发帖数: 1237
56
有可能是他绝望了赶紧move on寻找你其他闪光点,只可惜似乎第二个也悲剧

【在 t*****s 的大作中提到】
: 没错,但等我提出后面那种方案后,他立刻表示对,然后就进展到下一题。并没有给我
: 机会讨论这个问题。
:
: 不下要读文件

j*******e
发帖数: 1058
57
也许别人内定好了,这个只是走形式,也是有可能的。
X****N
发帖数: 376
58
You didn't get the first question properly.
When the string is super long, such as 100TB, the interviewer does not
expect you give a solution of long long. He expects you to do the counting
in parallel, ie through multi-machines. You need to explain an algorithm on
how to implement it. BTW, java long is 64bits and should be long enough for
the counting.
During my interviewing experience, I found it is always good practice to
start with an easy question, and add more juice one by one. It will show how
a candidate improves his code with new requirements.

【在 t*****s 的大作中提到】
: 没错,但等我提出后面那种方案后,他立刻表示对,然后就进展到下一题。并没有给我
: 机会讨论这个问题。
:
: 不下要读文件

w****x
发帖数: 2483
59

on
for
how
那也得知道string是怎么存储的吧, 要是就一个file存储的怎么parallel? 可以直接定
位到file的一个position, 而不用从头开始读吗?

【在 X****N 的大作中提到】
: You didn't get the first question properly.
: When the string is super long, such as 100TB, the interviewer does not
: expect you give a solution of long long. He expects you to do the counting
: in parallel, ie through multi-machines. You need to explain an algorithm on
: how to implement it. BTW, java long is 64bits and should be long enough for
: the counting.
: During my interviewing experience, I found it is always good practice to
: start with an easy question, and add more juice one by one. It will show how
: a candidate improves his code with new requirements.

y****n
发帖数: 743
60
1. 面试是个淘汰过程,如果多数人都能轻松做到,还面试什么?
2. 面试是个区分的过程,如果被面试者有多年项目经验,应对起来会自如一些。
3. 面试是个上纲上线的过程,你犯了某个错误,对方不会认为是疏忽,他可能认为你
不懂。你不做输入参数检查,对方会认为你没做过项目。很不合理,但30-60分钟的面
试就是这样。
4. 好的面试是需要训练的,经过正确的训练,一般人是能做到的。这样在面试的成功
率上,会大大提高。甚至可以从比你强很多的竞争者的手中抢到Offer。

【在 w****x 的大作中提到】
:
: on
: for
: how
: 那也得知道string是怎么存储的吧, 要是就一个file存储的怎么parallel? 可以直接定
: 位到file的一个position, 而不用从头开始读吗?

相关主题
汗,不问算法请教一个设计test case的问题
请教:C++, 忽略大小写的字符串比较amazon 第一轮电话面试
一道微软题顶风上来问道题:一个很大char[], 如何in-place 删除重复元素
进入JobHunting版参与讨论
p*****2
发帖数: 21240
61

说的很好。确实是自己做不到不代表别人做不到。

【在 y****n 的大作中提到】
: 1. 面试是个淘汰过程,如果多数人都能轻松做到,还面试什么?
: 2. 面试是个区分的过程,如果被面试者有多年项目经验,应对起来会自如一些。
: 3. 面试是个上纲上线的过程,你犯了某个错误,对方不会认为是疏忽,他可能认为你
: 不懂。你不做输入参数检查,对方会认为你没做过项目。很不合理,但30-60分钟的面
: 试就是这样。
: 4. 好的面试是需要训练的,经过正确的训练,一般人是能做到的。这样在面试的成功
: 率上,会大大提高。甚至可以从比你强很多的竞争者的手中抢到Offer。

d**********o
发帖数: 279
62
我觉得他的意思就是让你用string 来做加法。 string可以直接用string, 也可以用指
针, 总之是没遇到一次加1, 就算是10位数字, 也很快。
s**u
发帖数: 2294
63
mark
1 (共1页)
进入JobHunting版参与讨论
相关主题
汗,不问算法amazon 电面题目
请教:C++, 忽略大小写的字符串比较ebay电面面经,攒人品,求好运
一道微软题google 电面
请教一个设计test case的问题A家FAILED掉了,看来银行也没戏了。问了一算法题
amazon 第一轮电话面试我花了一个小时才调通过这个程序
顶风上来问道题:一个很大char[], 如何in-place 删除重复元素Amazon电面问题求大牛解答
Google Intern面经顺求bless~G家最新电面
Google实习第一轮电话面试总结今天的校园面试
相关话题的讨论汇总
话题: count话题: long话题: int话题: input话题: 字符串