bean
1
贡献一个小众Robinhood数据
Career fair聊天拿到了面试
题目不难,第一个类似丽抠司咬把,其实还没这么复杂,给一串单词,然后屏幕的宽度,返回结果,如果一个也塞不下就返回空,否则返回一行可以塞下最多时候屏幕的样子
第二个是concurrency问题,给一串代码,问里面会出现啥情况,就瞎说了一堆concurrency的问题,然后可以上锁,readwritelock,db的transaction blablabla,然后还说如果db fail了,就不能继续了,不用写代码就是瞎说
催出一封拒信,不给feedback,求人品
def bad_transaction(val):
remain = account1.remain
if val > remain:
return
1 Like
bean
3
补充内容 (2017-11-18 05:42):
def bad_transaction(val):
remain = account1.remain
if val > remain:
return
account1.withdraw(val) # db write
send_email_to_account1()
account2.deposite(val)
send_email_to_account2()
byd6540
(比亚迪)
4
std::mutex mtx;
void bad_transaction(val):
mtx.lock();
remain = account1.remain
if val > remain:
return;
mtx.unlock();
mtx.lock();
account1.withdraw(val); # db write
mtx.unlock();
send_email_to_account1();
mtx.lock();
account2.deposite(val);
mtx.unlock();
send_email_to_account2();
补充内容 (2017-11-18 09:31):
请问这样可以吗?。。。如何改进第二题答案。谢谢楼主!
跟楼主题一模一样,我也跪了。。。主要是没想到第二题这样的套路,其实就是最基本的db transaction知识,我还说了2-phase commit和rollback,然后email要在commit成功之后发送。
bean
6
+1 我也把能记得的db都说了,pat pat~层主会有更好的~
bm55755
(华晨宝马)
7
比如说单词是这样的[“aaaaaaaa”,“apple”,“me”,“code”,“aaaaaaaa”,“lo”],然后屏幕的宽度是6
是不是就应该返回"apple me"? 或者"me code"因为长度都是6