📣 独立日限时特惠: VIP通行证立减$68
回复: 23
跳转到指定楼层
上一主题 下一主题
收起左侧

古狗电面跪经

全局:

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

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

第一题测试

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

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

我就说 如果说 如果输入是"" "" &q
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
left">然后第三题他有说 TreeNode Snipit

我就说 前缀树,然后觉得也不太对,也不太会写就。那么地了。

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

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


评分

参与人数 3大米 +85 收起 理由
david.fang + 5 感谢分享!
爱丽丝和鲍勃 + 50
WishUponAStar + 30 很有用的信息!

查看全部评分


上一篇:驴软电面
下一篇:Quora OA & Interviews

本帖被以下淘专辑推荐:

推荐
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,语法部分几行代码就可以表达出来了。
回复

使用道具 举报

推荐
ZionHill 2017-8-4 23:57:09 | 只看该作者
全局:
会给你第二轮电面的。好好准备
回复

使用道具 举报

推荐
codemonk 2017-8-24 13:32:26 | 只看该作者
全局:
第三题 recursive descend parser

  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_) {
  10.         tag = tag_;
  11.         text = text_;
  12.     }
  13. };

  14. TreeNode* parse(string& html, int& i) {
  15.     if(html[i] == '[') {
  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;
  22.         TreeNode* root = new TreeNode(tag, "");
  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;
  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);
  42.         if(tmp) root->children.push_back(tmp);
  43.     }
  44.     return root;
  45. }

  46. void printTree(TreeNode* root) {
  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();
  54.             cout << "tag:" << top->tag << " text:" << top->text << "    ";
  55.             for(auto c : top->children) q.push(c);
  56.         }
  57.         cout << endl;
  58.     }
  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;
  65.     html = "[text] Hello [/text] [bold]abc[tiny] maketiny [/tiny]123[/bold] [mark]word[/mark]";
  66.     printTree(parseHtml(html));
  67.     return 0;
  68. }
复制代码
回复

使用道具 举报

🔗
limuzi0609 2017-8-4 20:56:53 | 只看该作者
本楼:
全局:
胖迪加油
回复

使用道具 举报

🔗
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
设计一个数据结构 分别储存文本和标记。

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

使用道具 举报

🔗
 楼主| FightForTomo 2017-8-5 10:29:26 | 只看该作者
全局:
2011051305 发表于 2017-8-5 10:12
那么看起来是利扣 无玖腰 的变体?

没做过,不知道。
回复

使用道具 举报

🔗
linlin1990 2017-8-7 04:36:23 | 只看该作者
本楼:
全局:
谢谢分享
回复

使用道具 举报

🔗
 楼主| FightForTomo 2017-8-7 10:55:24 | 只看该作者
全局:
brn 发表于 2017-8-7 10:48
第三题就是设计一个类似于 TreeNode 的结构呗
另外你说的是 snippet 吧?

你嗦的对。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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