一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
电商初创公司Good Days
招聘SDE/UI/TPM实习生
把贵司招聘信息放这里
查看: 3959|回复: 23
收起左侧

[找工就业] 古狗电面跪经

[复制链接] |试试Instant~ |关注本帖
FightForTomo 发表于 2017-8-4 18:21:31 | 显示全部楼层 |阅读模式

2017(7-9月)-[15]CS硕士+fresh grad 无实习/全职 - 猎头|BayArea 码农类全职@Googlefresh grad应届毕业生

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

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

x
好想混进狗家啊。
2周前在linkedin联系的HR。约了个电面。tag底下刷了2周,写了能有67十道吧。
SETI职位。英语说的别好的一个外国人面的。

第一题测试

Calculate(String"2", String "+", String"3") return 5

你会怎么测试这个函数?
我列个能想到的情况:

我就说 如果说 如果输入是"" "" ""空字符串怎么办

输入是Null Null Null怎么办
如果输入的是 "a" "+" "b"怎么办
如果输入的是"2" "#" "3"怎么办
如果只传入了2个或1个参数怎么办

我本来还想到 Integer Overflow但是输入输出的字符串可能就没这个问题了

第二题设计数据结构

给定 Key Value Duration 3个参数
写3个函数, 1个是put, 一个是get,还有一个是clearExperiedEntry。get 函数要求如果 过时了的话, 就return Null。

.鏈枃鍘熷垱鑷1point3acres璁哄潧
我是建了一个对象用Hashmap存。

class obj {
int val;
long cur;
long dur;
obj()
}


然后第三题是 设计一个类

给定snipit  [text] Hello [/text] [bold]![/bold] [mark]word[mark]

如何把那个文本标志和内容分开储存

我不会给他们分开,所以没写出来

然后第三题他有说 TreeNode Snipit
. visit 1point3acres.com for more.
我就说 前缀树,然后觉得也不太对,也不太会写就。那么地了。

第三题 主要是难在 他的那些[marks] 文本符号是互相交错的.。

提了两个问题,然后就结束了。
第三题代码都不会写。估计onsite的机会都没有了,好难过
.1point3acres缃

评分

3

查看全部评分

本帖被以下淘专辑推荐:

magicsets 发表于 2017-8-7 11:30:31 | 显示全部楼层
第三题将文本“分开”的方法,比较系统的知识应该是在"Programming Languages and Compilers"这类课程里前几章关于"Lexer/Parser"的部分。

只是要做题目的话,可以用一个stack去hack出来(stack=递归,是处理树状结构的很好的方法), 例如楼上提到的类似题目LeetCode 591,Discuss里给出的答案:
https://discuss.leetcode.com/topic/91300/java-solution-use-startswith-and-indexof

更通用一点的方法是写一个简单的“递归下降语法解析器”(recursive descent parser)——这个并不难写,而且可以解决几乎所有类似的题目,建议搜索并学习一下..
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
实践中需要解析文本的时候一般是用"parser generator"工具,比如flex+bison / JavaCC / Antlr之类的。这道题目非常适合词法和语法混合的LL(k)的parser generator,例如Antlr,语法部分几行代码就可以表达出来了。
回复 支持 3 反对 0

使用道具 举报

ZionHill 发表于 2017-8-4 23:57:09 | 显示全部楼层
会给你第二轮电面的。好好准备
回复 支持 1 反对 0

使用道具 举报

2011051305 发表于 2017-8-5 01:27:05 | 显示全部楼层
第三题都没看懂什么意思 是说给定  [text] Hello [/text] [bold]![/bold] [mark]word[mark]  最后让你提取出 Hello (并且标记其为text属性) 提取出"!"(标记其为bold属性) 以及提取"word"(标记其为mark属性)?
回复 支持 反对

使用道具 举报

 楼主| FightForTomo 发表于 2017-8-5 05:06:21 | 显示全部楼层
2011051305 发表于 2017-8-5 01:27
第三题都没看懂什么意思 是说给定  [text] Hello [/text] ![/bold] [mark]word[mark]  最后让你提取出 Hell ...

设计一个数据结构 分别储存文本和标记。
回复 支持 反对

使用道具 举报

2011051305 发表于 2017-8-5 10:12:39 | 显示全部楼层
FightForTomo 发表于 2017-8-5 05:06. from: 1point3acres.com/bbs
设计一个数据结构 分别储存文本和标记。

那么看起来是利扣 无玖腰 的变体?
回复 支持 反对

使用道具 举报

 楼主| FightForTomo 发表于 2017-8-5 10:29:26 | 显示全部楼层
2011051305 发表于 2017-8-5 10:12.1point3acres缃
那么看起来是利扣 无玖腰 的变体?

没做过,不知道。
回复 支持 反对

使用道具 举报

brn 发表于 2017-8-7 10:48:20 | 显示全部楼层
第三题就是设计一个类似于 TreeNode 的结构呗
另外你说的是 snippet 吧?  
回复 支持 反对

使用道具 举报

 楼主| FightForTomo 发表于 2017-8-7 10:55:24 | 显示全部楼层
brn 发表于 2017-8-7 10:48. From 1point 3acres bbs
第三题就是设计一个类似于 TreeNode 的结构呗. Waral 鍗氬鏈夋洿澶氭枃绔,
另外你说的是 snippet 吧?

你嗦的对。
回复 支持 反对

使用道具 举报

stargazer 发表于 2017-8-14 13:32:19 | 显示全部楼层
这么早就招全职了?还能LinkeIn直接联系HR?
回复 支持 反对

使用道具 举报

watercup 发表于 2017-8-15 02:28:45 | 显示全部楼层
第三题感觉就是设计一个DOM tree解析html 文件。
class TreeNode {
   String tag;
   String text;
   List<TreeNode> children;. visit 1point3acres.com for more.
}
回复 支持 反对

使用道具 举报

codemonk 发表于 2017-8-24 13:32:26 | 显示全部楼层
第三题 recursive descend parser
. 鍥磋鎴戜滑@1point 3 acres
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. using namespace std;

  5. struct TreeNode {
  6.     string tag;
  7.     string text;
  8.     vector<TreeNode*> children;
  9.     TreeNode(string tag_, string text_) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  10.         tag = tag_;
  11.         text = text_;
  12.     }
  13. };

  14. TreeNode* parse(string& html, int& i) {
  15.     if(html[i] == '[') {. 1point3acres.com/bbs
  16.         i++; // skip '['
  17.         int j = html.find(']', i);
  18.         string tag = html.substr(i, j-i);
  19.         i = j + 1;
  20.         
  21.         int start = i;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  22.         TreeNode* root = new TreeNode(tag, "");.鏈枃鍘熷垱鑷1point3acres璁哄潧
  23.         while(html.substr(i,2) != "[/") {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  24.             auto child = parse(html, i);
  25.             if(child) root->children.push_back(child);
  26.         }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  27.         root->text = html.substr(start, i-start);
  28.         i += 2;
  29.         i = html.find(']', i);
  30.         i++;// skip ']'
  31.         return root;.1point3acres缃
  32.     }
  33.     else {
  34.         while(i < html.length() && html[i] != '[') i++; // scan all text content
  35.         return nullptr;
  36.     }
  37. }

  38. TreeNode* parseHtml(string& html) {
  39.     TreeNode* root = new TreeNode("","");
  40.     for(int i = 0; i < html.length(); ) {
  41.         auto tmp = parse(html, i);-google 1point3acres
  42.         if(tmp) root->children.push_back(tmp);
  43.     }
  44.     return root;.1point3acres缃
  45. }

  46. void printTree(TreeNode* root) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  47.     queue<TreeNode*> q;
  48.     q.push(root);
  49.     while(!q.empty()) {
  50.         int qsize = q.size();
  51.         while(qsize-- > 0) {
  52.             auto top = q.front();
  53.             q.pop();-google 1point3acres
  54.             cout << "tag:" << top->tag << " text:" << top->text << "    ";
  55.             for(auto c : top->children) q.push(c);
  56.         }
  57.         cout << endl;
  58.     }. 鍥磋鎴戜滑@1point 3 acres
  59. }

  60. int main(int argc, const char * argv[]) {
  61.     // insert code here...
  62.     string html = "[text] Hello [/text] [bold]![/bold] [mark]word[/mark]";
  63.     printTree(parseHtml(html));
  64.     cout << endl;. Waral 鍗氬鏈夋洿澶氭枃绔,
  65.     html = "[text] Hello [/text] [bold]abc[tiny] maketiny [/tiny]123[/bold] [mark]word[/mark]";. from: 1point3acres.com/bbs
  66.     printTree(parseHtml(html));
  67.     return 0;
  68. }
    .1point3acres缃
复制代码
回复 支持 反对

使用道具 举报

 楼主| FightForTomo 发表于 2017-8-24 13:36:50 | 显示全部楼层
codemonk 发表于 2017-8-24 13:32. from: 1point3acres.com/bbs
第三题 recursive descend parser

谢谢,下次我就写出来了。
回复 支持 反对

使用道具 举报

jessyhann 发表于 2017-8-25 08:05:46 | 显示全部楼层
题主电面结果怎么样?
回复 支持 反对

使用道具 举报

littlegrass 发表于 2017-8-26 09:09:13 | 显示全部楼层
楼主有后续吗?
回复 支持 反对

使用道具 举报

 楼主| FightForTomo 发表于 2017-8-26 09:26:56 | 显示全部楼层

就继续刷题,争取再面一次呗。
回复 支持 反对

使用道具 举报

littlegrass 发表于 2017-8-26 09:39:08 | 显示全部楼层
FightForTomo 发表于 2017-8-26 09:26
就继续刷题,争取再面一次呗。

祝楼主好运!楼主的帖子写fresh grad 为什么不等今年的秋招 急着面SETI?
回复 支持 反对

使用道具 举报

 楼主| FightForTomo 发表于 2017-8-26 10:40:22 | 显示全部楼层
littlegrass 发表于 2017-8-26 09:39
祝楼主好运!楼主的帖子写fresh grad 为什么不等今年的秋招 急着面SETI?

年少无知唉
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2018-1-19 10:11

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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