传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 1206|回复: 7
收起左侧

脸家昂赛特

[复制链接] |试试Instant~ |关注本帖
laiptony 发表于 2017-8-2 19:17:56 | 显示全部楼层 |阅读模式

2017(4-6月) 码农类 博士 全职@Facebook - 内推 - 技术电面 Onsite |Pass在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
面完才发现有很多其实都是LC(变形)题

店面
hamming distance problems (LC461, LC477)

昂賽特 (~:变形)
a) parse HTML and build a DOM tree. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
b) ~LC283 ~LC29 还有一题没时间写完只讲了思路
c) memcache + hashtable (system design). Waral 鍗氬鏈夋洿澶氭枃绔,
d) behavior + ~LC78. Waral 鍗氬鏈夋洿澶氭枃绔,

coding都要求写测试

本帖被以下淘专辑推荐:

flgt2014 发表于 2017-8-2 19:37:58 | 显示全部楼层
楼主 ‘分析HTML建DOM树‘这题 能否展开说说?具体有什么要求?
回复 支持 反对

使用道具 举报

bearicc 发表于 2017-8-2 23:50:25 | 显示全部楼层
楼主方便透露下system design准备了多久吗?给自己点信心。。
回复 支持 反对

使用道具 举报

bearicc 发表于 2017-8-3 00:59:15 | 显示全部楼层
自己试着做了一下第一题:
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <stack>
  5. #include <tuple>. Waral 鍗氬鏈夋洿澶氭枃绔,

  6. using namespace std;

  7. . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  8. struct TreeNode {. Waral 鍗氬鏈夋洿澶氭枃绔,
  9.     string tag;
  10.     string content;
  11.     string tail;
  12.     vector<TreeNode*> next;
  13.     TreeNode(string tag):tag(tag) {}. 1point 3acres 璁哄潧
  14. };

  15. pair<string, string> read(const string& html, int& i) {
  16.     const int N = html.size();
  17.     string text, tag;
  18.     while (i < N && html[i] != '<') {
  19.         text += html[i++];. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  20.     }
  21.     ++i;. visit 1point3acres.com for more.
  22.     while (i < N && html[i] != '>') {
  23.         tag += html[i++];. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  24.     }
  25.     ++i; // skip '>'
  26.     return {text, tag};
  27. }

  28. TreeNode* parse(string html) {
  29.     const int N = html.size();
  30.     int i = 0;
  31.     string text, tag;
  32.     stack<TreeNode*> mystack;
  33. . Waral 鍗氬鏈夋洿澶氭枃绔,
  34.     tie(text, tag) = read(html, i);
  35.     if (tag.empty()) {
  36.         return NULL;. Waral 鍗氬鏈夋洿澶氭枃绔,
  37.     }
  38.     TreeNode* root = new TreeNode(tag);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  39.     mystack.push(root);
  40.     while (i < N) {
  41.         tie(text, tag) = read(html, i);. Waral 鍗氬鏈夋洿澶氭枃绔,
  42.         if (tag[0] != '/') {
  43.             mystack.top()->content = text;
  44.             TreeNode* p = new TreeNode(tag);
  45.             mystack.top()->next.push_back(p);
  46.             mystack.push(p); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  47.         } else {
  48.             if (mystack.top()->next.empty()) {
  49.                 mystack.top()->content = text;
  50.             } else {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  51.                 mystack.top()->tail = text;
  52.             }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  53.             mystack.pop();
  54.         }
  55.     }
  56.     return root;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  57. }

  58. void test(TreeNode* root) {
  59.     if (!root) {
  60.         return;.1point3acres缃
  61.     }
  62.     cout << "(" << root->tag << ") (" << root->content << ") (" << root->tail << ")" << endl;
  63.     for (TreeNode* p: root->next) {. 1point3acres.com/bbs
  64.         test(p);
  65.     }
  66. }
  67. . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  68. int main() {
  69.     string html = "<html><head><title>Test</title></head><body>It works!</body></html>";
  70.     cout << html << endl;
  71.     TreeNode* root = parse(html);. 1point 3acres 璁哄潧
  72.     test(root);. visit 1point3acres.com for more.
  73.     return 0;
  74. }
复制代码
回复 支持 反对

使用道具 举报

say543 发表于 2017-8-3 14:58:23 | 显示全部楼层
memcache + hashtable (system design) 是不是就是设计一个key value store 有什么考察点吗?
回复 支持 反对

使用道具 举报

csytracy 发表于 2017-8-4 03:09:42 | 显示全部楼层
谢谢lz分享!我最关心的是:系统设计怎么复习?有没有推荐的书?九章系统设计课已经上过了。大牛对fresh phd有什么建议吗?
回复 支持 反对

使用道具 举报

 楼主| laiptony 发表于 2017-8-5 21:00:24 | 显示全部楼层
say543 发表于 2017-8-3 14:58
memcache + hashtable (system design) 是不是就是设计一个key value store 有什么考察点吗?

I think communication is the most important key. Discuss with the interviewer and make sure we design a system that satisfy the given constraints.
回复 支持 反对

使用道具 举报

 楼主| laiptony 发表于 2017-8-5 21:10:28 | 显示全部楼层
bearicc 发表于 2017-8-2 23:50. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
楼主方便透露下system design准备了多久吗?给自己点信心。。

Hard to estimate how long I prepared because a lot of system design concepts I learned from work.
Most of the system design problems are open-ended, so communication is very important.. 1point3acres.com/bbs
I treat system design interviews as "checking if we can design a system together if we are teammates" (and "figure out what the interviewer wants to hear").
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-22 09:15

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表