由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - ebay第一轮电话面经
相关主题
请教一个系统设计问题 (转载)如何实现binary tree的从下到上的分层打印?
A第一轮电面,求建议,面完必updateshare 面试题
L二电面据,附面经这个用stack实现queue
用有限状态机写了一下leetcode valid number求救: 打印binary tree
发现valid number真是必杀题如何用JAVA中的circular array of queue 解决Josephus problem? (转载)
g面经来一个。M$ screening coding题2道
昨天被面试的问题问个题:get max value from Queue, with O(1)?
一道面试题A家来两道电面题
相关话题的讨论汇总
话题: str话题: string话题: word话题: res话题: int
进入JobHunting版参与讨论
1 (共1页)
s********u
发帖数: 1109
1
老印面试,人挺nice的,就是说话还是听不太清楚。特别是带了耳塞接电话,声音很“
刺”,免提又怕更听不清楚。
0.以为电面不问behavior的,没想到问我平时用不用ebay,如何提高用户体验等。。幸
好我用的比较多,随便扯了些。但是很担心突然说让我根据我说的design一下,所以战
战兢兢。
1.用stack实现一个queue,careercup书原题。我在dequeue里面用了shiftstack,他问
我能不能将enqueue的time cost降低到O(1),我说可以,只要每次enqueue时候都
shiftstack就可以了。他问我哪种更好(enqueue和dequeue几率相同),我说前者更好
,因为dequeue的时候,只要leftstack不空,是不需要shiftstack的。
2.// Input -> "I have 36 books, 40 pens2, and 1 notebook."
// Output -> "I evah 36 skoob, 40 2snep, dna 1 koobeton."
如果是数字,原样输出,如果不是,那么倒序。
挺简单的题目,卡了5分钟,最近leetcode做多了啥都想复杂了,一开始想用
stringstream读字符串,又觉得标点不好处理,而且空格会丢。(ignore的话就丢了标
点)甚至有一秒钟想到什么递归和dp去了。。。
然后有点将信将疑的就用for循环做了一遍。碰到数字往下走,如果一直走到标点或者
空格那么就把数字的这个substring加上去,如果中间就跳出了,那么返回到原来的
index,把字符串倒序。(连reverse函数都出现了两个小错误。。),添加到result字
符串上去。
然后他问了我两个test case,第一个“test”提示我找到 自己code中没有判断string
的末尾;第二个test case “12345688888x”,问我能不能走通,如果可以能不能做
更好。然后我说就算不是数字index不用往回,继续往下走即可,但回答得磕磕碰碰,
因为一开始以为自己有什么bug。
==================================================
大概因为是第一轮 都是很简单的题目,没有算法可言,但因为面试经验不够,写代码
不自信,还老犯小错误,难以想象要是让我当场写一个wordladder题,会有多少typo和
错误。。
连个tree都没考到还弄得这么曲折。。没脸见人了。
不过面试官说不用担心,pretty good之类,估计是安慰我。。哭。
先不管了,还是要多练练,可能不是FLG的话,还是熟练和bugfree重要点。。
顺便求要求低一点的it公司内推。。
c********p
发帖数: 1969
2
mark
r********7
发帖数: 102
3
只要面试官说了“pretty good” 就应该可以过的。
另外第二题其实难度还可以的,还要考虑到标点符号。还有“abc123” 这样应不应该
reverse的问题。
楼主总结了那么多ebay面试题,下功夫了,一定没问题!~
我这周也有onsite,借鉴了不少楼主总结的面经,在此谢过!~
f******p
发帖数: 173
4
写了一下第二题,后来一测试还是发现没有考虑string不以, . ' '结束的情况。。哎
。。。

【在 s********u 的大作中提到】
: 老印面试,人挺nice的,就是说话还是听不太清楚。特别是带了耳塞接电话,声音很“
: 刺”,免提又怕更听不清楚。
: 0.以为电面不问behavior的,没想到问我平时用不用ebay,如何提高用户体验等。。幸
: 好我用的比较多,随便扯了些。但是很担心突然说让我根据我说的design一下,所以战
: 战兢兢。
: 1.用stack实现一个queue,careercup书原题。我在dequeue里面用了shiftstack,他问
: 我能不能将enqueue的time cost降低到O(1),我说可以,只要每次enqueue时候都
: shiftstack就可以了。他问我哪种更好(enqueue和dequeue几率相同),我说前者更好
: ,因为dequeue的时候,只要leftstack不空,是不需要shiftstack的。
: 2.// Input -> "I have 36 books, 40 pens2, and 1 notebook."

s********u
发帖数: 1109
5
是的,我就是犯了这个错误。总之还是不熟练,平时练习的话IDE一跑或者对下答案也
不当回事,到面试就容易有typo或者错误

【在 f******p 的大作中提到】
: 写了一下第二题,后来一测试还是发现没有考虑string不以, . ' '结束的情况。。哎
: 。。。

b**********5
发帖数: 7881
6
什么叫shiftstack?
s********u
发帖数: 1109
7
就是把一个stack里的东西pop出来,push到另一个去。这样的话两次FILO,就变成FIFO
的queue了。
可以看careercup第三章原题。我面试的时候是直接把原来的代码调出来照抄了呵呵

【在 b**********5 的大作中提到】
: 什么叫shiftstack?
b**********5
发帖数: 7881
8
这个我知道。 但没懂你的shiftstack什么意思。 然后也没有懂还有什么two
alternative让你选什么好。 enqueue不就是个push 么? 本来就是O(1)啊

FIFO

【在 s********u 的大作中提到】
: 就是把一个stack里的东西pop出来,push到另一个去。这样的话两次FILO,就变成FIFO
: 的queue了。
: 可以看careercup第三章原题。我面试的时候是直接把原来的代码调出来照抄了呵呵

S******6
发帖数: 55
9
感觉回答挺好,恭喜了
s********u
发帖数: 1109
10
1.关于shiftstack,enqueue是push,O(1)操作;但是dequeue的时候,如果leftstack
不为空,那么需要把rightstack的东西全部shift到leftstack去,而不能只shift一个。
2.让我选的是,是否能够把dequeue用O(1)实现,那么也就是说,shiftstack放到
enqueue的时候操作,这样就行了。但这样的话总体来说其实并不划算,因为每次
enqueue都要shiftstack来清空rightstack;而原来那种操作方式,只有在leftstack空
的时候才需要这么做。
他问我的基本就是这些意思

【在 b**********5 的大作中提到】
: 这个我知道。 但没懂你的shiftstack什么意思。 然后也没有懂还有什么two
: alternative让你选什么好。 enqueue不就是个push 么? 本来就是O(1)啊
:
: FIFO

相关主题
g面经来一个。如何实现binary tree的从下到上的分层打印?
昨天被面试的问题share 面试题
一道面试题这个用stack实现queue
进入JobHunting版参与讨论
p****o
发帖数: 46
11
第二题如果是, . ' '结束的情况, 用stack
否则的话,结尾还得把stack输出.
确实,一步小心就容易忽略
写个c++的代码
#include
#include
using namespace std;
string strProc(string input){
stack stk;
string result;
for(string::const_iterator it = input.begin(); it!=input.end(); ++it){
if (*it < '9' && *it > '0' && stk.empty()){
result+=*it;
}
else if (*it == ' ' || *it ==',' || *it =='.'){
while (!stk.empty()){
char c= stk.top();
stk.pop();
result+=c;
}
result+=*it;
}
else {
stk.push(*it);
}
}
while (!stk.empty())
{
char c= stk.top();
stk.pop();
result+=c;
}
return result;
}
int main(){
string s = "I have 36 books, 40 pens2, and 1 notebook.";
cout << strProc(s) << endl;
}

【在 f******p 的大作中提到】
: 写了一下第二题,后来一测试还是发现没有考虑string不以, . ' '结束的情况。。哎
: 。。。

l***n
发帖数: 89
12
基本idea我觉得lz肯定对的。但是每次enqueue就shiftstack好像会有错啊。
比如
enqueue(1), enqueue(2), enqueue(3), 每次都shift的话,那么leftstack里面是1,2
,3. 没问题
然后dequeue(), 那么1出来。剩下2,3.没问题
然后再enqueue(4)。shiftstack之后,leftstack就是4, 2, 3。这样顺序就不对了。

leftstack
个。

【在 s********u 的大作中提到】
: 1.关于shiftstack,enqueue是push,O(1)操作;但是dequeue的时候,如果leftstack
: 不为空,那么需要把rightstack的东西全部shift到leftstack去,而不能只shift一个。
: 2.让我选的是,是否能够把dequeue用O(1)实现,那么也就是说,shiftstack放到
: enqueue的时候操作,这样就行了。但这样的话总体来说其实并不划算,因为每次
: enqueue都要shiftstack来清空rightstack;而原来那种操作方式,只有在leftstack空
: 的时候才需要这么做。
: 他问我的基本就是这些意思

s********u
发帖数: 1109
13
谢谢指出。面试的时候有点紧张没有仔细考虑。
我想了下,如果每次enqueue就shiftstack,必须将lstack倒到rstack,然后push进来
,再倒回去。。

,2

【在 l***n 的大作中提到】
: 基本idea我觉得lz肯定对的。但是每次enqueue就shiftstack好像会有错啊。
: 比如
: enqueue(1), enqueue(2), enqueue(3), 每次都shift的话,那么leftstack里面是1,2
: ,3. 没问题
: 然后dequeue(), 那么1出来。剩下2,3.没问题
: 然后再enqueue(4)。shiftstack之后,leftstack就是4, 2, 3。这样顺序就不对了。
:
: leftstack
: 个。

s********u
发帖数: 1109
14
你比我写的好多了,我写的大致是这样的:
// Input -> "I have 36 books, 40 pens2, and 1 notebook."
// Output -> "I evah 36 skoob, 40 2snep, dna 1 koobeton."
string reverse( string& word){
if( word.empty() || word.size() == 1)
return word;

int left = 0;
int right = word.size() - 1;
char tmp;

while( left < right ){
tmp = word[right];
word[right] = word[left];
word[left] = tmp;
left++;
right--;
}

return word;
}

// Input: test => tset
// Input: 1234567888888x
string perform( string str ){
string word;
string res;

int i = 0;

for( i = 0 ; i< str.size();i++){

if( str[i] == ' ' || str[i] == '.' || str[i] == ',' )
res = res + str[i];

int j = i;

if( isdigit(str[i]){


while( isdigit(str[j]) )
j++;

if( j == str.size() || str[j] == ' ' || str[j] == ',' || str[j]
== '.' ){
word = str.substr( i, j - i);
i = j+1;
res = res + word;
continue;
}
}

while( str[j] != ' ' || str[j] != ',' || str[j] != '.' || j < str.
size() )
j++;

word = str.substr( i, j - i);
i = j + 1;
res = res + reverse(word);
}

return res;

}

【在 p****o 的大作中提到】
: 第二题如果是, . ' '结束的情况, 用stack
: 否则的话,结尾还得把stack输出.
: 确实,一步小心就容易忽略
: 写个c++的代码
: #include
: #include
: using namespace std;
: string strProc(string input){
: stack stk;
: string result;

f*******d
发帖数: 45
15
各种羡慕 高级码农啊
s********u
发帖数: 1109
16
这个版上普遍是基本不屑于提ebay这个档次的吧。。

【在 f*******d 的大作中提到】
: 各种羡慕 高级码农啊
m*******m
发帖数: 80
17
谢谢面筋!~~
刚试了试, 我靠, 第二题稍不小心就出bug, 我刚用eclipse敲一遍, 去, debug了好多遍
才完全没问题, 电面那点时间, 我可以肯定我会出问题...
s********u
发帖数: 1109
18
多谢大家支持,过了第一轮。下周第二轮。
很奇怪hr没有联系我。我今天忍不住问了一下hr,然后他说是positive feedback,准
备安排下一轮。难道我不问他就不通知我了么,汗。。
y***g
发帖数: 1492
19
有点问题 123abc会变成123cba
如果中间没有空格应该保持不变吧

【在 p****o 的大作中提到】
: 第二题如果是, . ' '结束的情况, 用stack
: 否则的话,结尾还得把stack输出.
: 确实,一步小心就容易忽略
: 写个c++的代码
: #include
: #include
: using namespace std;
: string strProc(string input){
: stack stk;
: string result;

s********u
发帖数: 1109
20
所以我当时的选择还不错,不用stack,而是把substring提取出来reverse,再添加到
结果中。

【在 y***g 的大作中提到】
: 有点问题 123abc会变成123cba
: 如果中间没有空格应该保持不变吧

相关主题
求救: 打印binary tree问个题:get max value from Queue, with O(1)?
如何用JAVA中的circular array of queue 解决Josephus problem? (转载)A家来两道电面题
M$ screening coding题2道贡献一道G家电面题
进入JobHunting版参与讨论
c********p
发帖数: 1969
21
Mark
c********p
发帖数: 1969
22
Mark
s********u
发帖数: 1109
23
今天练习了一下,这种应该是最优的了,不用别的数据结构,而且也只用一次遍历:
string process( const string &input){
int begin = 0;
int end = 0;
bool isNumber = true;
char local;
string word;
string res;

for( end = 0; end < input.size(); end++ ){

local = input[end];

if( isdigit( local ) ){
}else if ( local == ' ' || local == ',' || local == '.' ){
word = input.substr(begin, end - begin);

if(isNumber){
res += word;
}else{
res += reverse(word);
}

res += local;

isNumber = true;
begin = end + 1;
}else{

isNumber = false;
}
}

return res;
}
t******d
发帖数: 1383
24
2个小时的ebay phone是不是?现在都要2个小时,还要2次了?一共4个小时的phone阿
,好累
j*******t
发帖数: 223
25
过了三周hr都没通知你?然后你催才出来的?他不是忘了吧...
s********u
发帖数: 1109
26
注意更新时间。

【在 j*******t 的大作中提到】
: 过了三周hr都没通知你?然后你催才出来的?他不是忘了吧...
k******e
发帖数: 145
27
第二个题目难道不是第一个题目的升级版本么?
是字符直接输出,是数字就入栈直到非数字就出栈直到栈空。

【在 s********u 的大作中提到】
: 注意更新时间。
s******3
发帖数: 344
28


【在 s********u 的大作中提到】
: 注意更新时间。
P**********k
发帖数: 1629
29
#include
#include
using namespace std;
void reverseWords(const string str_in, string &str_out, int length){

int i=0, j=0;

while(i
if(!is_letter(str_in, i)){
str_out[j++] = str_in[i++];
}else{
int start = i;
while(is_letter(str_in, i) && i i++;
}
int end = i-1;
//reverse copying
for(int k=end; k>=start; k--){
str_out[j++]=str_in[k];
}
}
}
}
bool is_letter(string str, int i){
return (str[i]-'a'>=0 && str[i]-'a'<=25)||(str[i]-'A'>=0 && str[i]-'A'<=
25);
}
b****f
发帖数: 138
30
Mark
相关主题
CLRS算法书中BFS的疑问A第一轮电面,求建议,面完必update
面试题L二电面据,附面经
请教一个系统设计问题 (转载)用有限状态机写了一下leetcode valid number
进入JobHunting版参与讨论
x******9
发帖数: 473
31
第1.题的第二段是不是打错了?好像说反了

【在 s********u 的大作中提到】
: 注意更新时间。
f*******r
发帖数: 1086
32
祝福好运!
l*y
发帖数: 70
33
用Deque (Java) 解第2题 可以么
1 (共1页)
进入JobHunting版参与讨论
相关主题
A家来两道电面题发现valid number真是必杀题
贡献一道G家电面题g面经来一个。
CLRS算法书中BFS的疑问昨天被面试的问题
面试题一道面试题
请教一个系统设计问题 (转载)如何实现binary tree的从下到上的分层打印?
A第一轮电面,求建议,面完必updateshare 面试题
L二电面据,附面经这个用stack实现queue
用有限状态机写了一下leetcode valid number求救: 打印binary tree
相关话题的讨论汇总
话题: str话题: string话题: word话题: res话题: int