回复: 41
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家new Gard店面

全局:

2018(10-12月) 码农类General 硕士 全职@google - 内推 - 技术电面  | | Fail | 应届毕业生

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

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

x
贡献一发面筋,白人大叔,没有问简历也没有让提问,开始直接做题,45分钟结束直接挂,面的太失败了。
您好!
本帖隐藏的内容需要积分高于 152 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 152 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


希望高抬贵手吧


补充内容 (2018-10-17 05:37):
3. a{c, {a,b}} -> aca acb
更正为a{c{a,b}}


补充内容 (2018-10-22 07:57):
https://www.careercup.com/question?id=5717301963784192
类似的题目的解法 

补充内容 (2018-10-24 04:58):
接到电话 告诉我跪了。。

评分

参与人数 7大米 +29 收起 理由
eonmon + 5 很有用的信息!
lzhong + 3 很有用的信息!
xn1990114 + 5 很有用的信息!
ninicngzh123 + 5 给你点个赞!
lingmingyang + 5 感谢楼主!加油!!

查看全部评分


上一篇:via oa 18秋
下一篇:HubSpot海投OA与HR挂经 2019 Summer Intern

本帖被以下淘专辑推荐:

推荐
SakuraBlossom 2018-10-17 06:04:43 | 只看该作者
全局:
AaLlC 发表于 2018-10-17 05:59
对的 这个是面试官的第一问,就是第一种情况
你觉得好写吗?

我觉得超级难………………情况太多了……那再请问一下会不会出现{a,b}c{a,b}这样的情况呀……
回复

使用道具 举报

推荐
Heinrich 2018-11-2 11:52:01 | 只看该作者
全局:
LaSeineFirenze 发表于 2018-10-25 14:27
我试着写了下,感觉45分钟能把思路讲清就不错了,bug-free基本做不到,这还是用recursion,要是一开始就想 ...

刚才咋没贴出来……

  1. vector<string> getNested(string s) {
  2.     s += ',';
  3.     vector<string> res, last{""}, cur, tmp;
  4.      
  5.     for (int i=0; i<s.size(); i++) {
  6.         if (s[i] == ',') {
  7.             for (int j=0; j<last.size(); j++)
  8.                 res.push_back(last[j]);
  9.             
  10.             last = {""};
  11.         } else {
  12.             cur.clear();
  13.             if (s[i] == '{') {
  14.                 int count = 1;
  15.                 int j = i+1;
  16.                 while (j<s.size() && count>0) {
  17.                     if (s[j]=='{') count++;
  18.                     else if (s[j]=='}') count--;
  19.                     j++;
  20.                 };
  21. //                cout << i << " " << j << endl;
  22. //                cout << s.substr(i+1, j-i-2) << endl;
  23.                 cur = getNested(s.substr(i+1, j-i-2));
  24.                 i = j-1;
  25.             } else
  26.                 cur.push_back(string(1, s[i]));

  27.             tmp.clear();
  28.             for (int j=0; j<last.size(); j++) {
  29.                 for (int k=0; k<cur.size(); k++) {
  30.                     tmp.push_back(last[j] + cur[k]);
  31. //                    cout << tmp.back() << " ";
  32.                 }
  33. //               cout << endl;
  34.             }
  35.             last = tmp;
  36.         }
  37.     }
  38.     return res;
  39. }

  40. vector<string> expandS(string s) {
  41.     vector<string> res = getNested(s);
  42.     for (auto r : res)
  43.         cout << r << " ";
  44.     cout << endl;
  45.     return res;
  46. }

  47. int main() {
  48.     expandS("a,b,c");
  49.     expandS("a{b,c}");
  50.     expandS("{a,b}{c,d}");
  51.     expandS("{a,b}{c,d},e");
  52.     expandS("f{a,b}{c,d},e");     
  53.     expandS("a{c{a,b}}");
  54.     expandS("d{c,{a,b}}");   
  55.     expandS("a{b,c}d");
  56.     return 0;
  57. }
复制代码
回复

使用道具 举报

全局:
我试着写了下,感觉45分钟能把思路讲清就不错了,bug-free基本做不到,这还是用recursion,要是一开始就想着用stack写估计就凉凉了
  1. // Nested
  2. vector<string> getNested(string s) {
  3.     s += ',';
  4.     vector<string> res, last({""}), cur, tmp;
  5.    
  6.     for (int i=0; i<s.size(); i++) {
  7.         if (s[i] == ',') {
  8.             for (int j=0; j<last.size(); j++)
  9.                 res.push_back(last[j]);
  10.             
  11.             last = {""};
  12.         }
  13.         else {
  14.             cur.clear();
  15.             if (s[i] == '{') {
  16.                 int j = s.size()-1;
  17.                 while (s[j] != '}') j--;
  18.                 cur = getNested(s.substr(i+1, j-i-1));
  19.                 i = j;
  20.             }
  21.             else
  22.                 cur.push_back(string(1, s[i]));

  23.             tmp.clear();
  24.             for (int j=0; j<last.size(); j++)
  25.                 for (int k=0; k<cur.size(); k++)
  26.                     tmp.push_back(last[j] + cur[k]);
  27.             
  28.             last = tmp;
  29.         }
  30.     }
  31.    
  32.     return res;
  33. }
复制代码

补充内容 (2018-10-25 14:38):
果然还是有bug......中间找大括号的地方写错了QAQ
回复

使用道具 举报

🔗
SakuraBlossom 2018-10-17 05:15:10 | 只看该作者
全局:
感谢lz的分享!可以请问一下lz什么时候面的么??

补充内容 (2018-10-17 05:21):
还有请问3那个例子里面,如果答案是aca和acb的话,为什么c和{a,b}之间会有","呢?请问是不是也可以理解为变成{ac,a{a,b}}=>ac,aa,ab呢?
回复

使用道具 举报

🔗
caragao 2018-10-17 05:26:33 | 只看该作者
全局:
笛卡尔乘积的话 ,3. a{c, {a,b}} -> aca acb 这个是怎么得到的呀?
回复

使用道具 举报

🔗
 楼主| AaLlC 2018-10-17 05:35:08 | 只看该作者
全局:
SakuraBlossom 发表于 2018-10-17 05:15
感谢lz的分享!可以请问一下lz什么时候面的么??

补充内容 (2018-10-17 05:21):

十分钟之前
就相当于nested的元素

补充内容 (2018-10-17 05:39):
你的理解没错
回复

使用道具 举报

🔗
 楼主| AaLlC 2018-10-17 05:36:45 | 只看该作者
全局:
caragao 发表于 2018-10-17 05:26
笛卡尔乘积的话 ,3. a{c, {a,b}} -> aca acb 这个是怎么得到的呀?

 错啦 c 和 {a,b} 没有逗号
回复

使用道具 举报

🔗
 楼主| AaLlC 2018-10-17 05:38:13 | 只看该作者
全局:
不好意思~
3. a{c, {a,b}} -> aca acb
更正为a{c{a,b}}
回复

使用道具 举报

🔗
SakuraBlossom 2018-10-17 05:46:03 | 只看该作者
全局:
AaLlC 发表于 2018-10-17 05:35
十分钟之前
就相当于nested的元素

不好意思lz,想再请问一个问题……像c{a,b}d这样的情况,结果是不是就是cad,cbd呢?相当于括号里的每个元素都要加上前后的character?
回复

使用道具 举报

🔗
 楼主| AaLlC 2018-10-17 05:59:58 | 只看该作者
全局:
SakuraBlossom 发表于 2018-10-17 05:46
不好意思lz,想再请问一个问题……像c{a,b}d这样的情况,结果是不是就是cad,cbd呢?相当于括号里的每个元 ...

对的 这个是面试官的第一问,就是第一种情况
你觉得好写吗?
回复

使用道具 举报

🔗
 楼主| AaLlC 2018-10-17 06:09:08 | 只看该作者
全局:
SakuraBlossom 发表于 2018-10-17 06:04
我觉得超级难………………情况太多了……那再请问一下会不会出现{a,b}c{a,b}这样的情况呀……

会的呢 {}里都是有逗号分开的,可能有nested的,括弧外面就是直接连在一起的,就是直接乘开。
类似多项式展开。。
回复

使用道具 举报

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

本版积分规则

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