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

FB店面面经

全局:

2017(7-9月) 码农类General 硕士 全职@meta - 内推 - 技术电面  | | Fail | 应届毕业生

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

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

x
FB店面,杯具了。。。。发个面经,攒攒以后的人品。
1. 字符串匹配,最原始的那种:一个s,一个p,在s里面找p,返回第一个匹配字串的开头下标
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
多次的。只不过不是4 bytes,而是4KB。

面完了,整个人都不好了。还是基本功太差啊。

上一篇:BB家onsite4轮已过
下一篇:FB 8.19电面
推荐
 楼主| zhuhai_ZFC 2016-8-20 05:54:10 | 只看该作者
全局:
zyoppy008 发表于 2016-8-20 05:12
找出所有你的朋友的朋友,但不是你的朋友,按你们共同好友的数量排序

能不能用BFS做?只找到第二层就停止,并且对于每个第二层的节点,在BFS的过程中就记录有多少个第一层的节点能够到达它。这样就能排序了。BFS的时间复杂度是O(n),排序的时间复杂度是O(nlogn)。总共是O(nlogn)
回复

使用道具 举报

推荐
edyyy 2016-8-20 04:41:07 | 只看该作者
全局:
楼主打回去好好刷题!
回复

使用道具 举报

推荐
 楼主| zhuhai_ZFC 2016-9-20 02:14:07 | 只看该作者
全局:
hezhifeng850207 发表于 2016-9-19 06:17
恩,我的意思是,window size=pattern size的时候,不就是保护所有pattern的字符,并且不包含其他非patte ...

能否贴个代码交流一下?我的代码如下:

  1. public class Solution {
  2.     public int strstrp(String s, String p) {
  3.         if(s==null || p==null || s.length()<p.length()) {
  4.             return -1;
  5.         } else {
  6.             int first = -1;
  7.             int cntUnique = 0;
  8.             int[] cnts = new int[ 256 ];

  9.             Arrays.fill(cnts, Integer.MAX_VALUE);
  10.             for(int idx = 0; idx < p.length(); idx++) {
  11.                 if(cnts[ p.charAt(idx) ] == Integer.MAX_VALUE) {
  12.                     cntUnique++;
  13.                     cnts[ p.charAt(idx) ] = 1;
  14.                 } else {
  15.                     cnts[ p.charAt(idx) ]++;
  16.                 }
  17.             }

  18.             for(int idx = 0; idx < p.length(); idx++) {
  19.                 if(cnts[ s.charAt(idx) ] < Integer.MAX_VALUE) {
  20.                     cnts[ s.charAt(idx) ]--;
  21.                     if(cnts[ s.charAt(idx) ] == 0) {
  22.                         cntUnique--;
  23.                     } else if(cnts[ s.charAt(idx) ] == -1) {
  24.                         cntUnique++;
  25.                     }
  26.                 }
  27.             }
  28.             if(cntUnique == 0) {
  29.                 return 0;
  30.             }

  31.             for(int idx = p.length(); idx < s.length(); idx++) {
  32.                 if(cnts[ s.charAt(idx-p.length()) ] < Integer.MAX_VALUE) {
  33.                     cnts[ s.charAt(idx-p.length()) ]++;
  34.                     if(cnts[ s.charAt(idx-p.length()) ] == 0) {
  35.                         cntUnique--;
  36.                     } else if(cnts[ s.charAt(idx-p.length()) ] == 1) {
  37.                         cntUnique++;
  38.                     }
  39.                 }
  40.                 if(cnts[ s.charAt(idx) ] < Integer.MAX_VALUE) {
  41.                     cnts[ s.charAt(idx) ]--;
  42.                     if(cnts[ s.charAt(idx) ] == 0) {
  43.                         cntUnique--;
  44.                     } else if(cnts[ s.charAt(idx) ] == -1) {
  45.                         cntUnique++;
  46.                     }
  47.                 }

  48.                 if(cntUnique == 0) {
  49.                     return idx-p.length()+1;
  50.                 }
  51.             }

  52.             return first;
  53.         }
  54.     }
  55. }
复制代码
回复

使用道具 举报

🔗
zyoppy008 2016-8-20 03:53:41 | 只看该作者
本楼:
全局:
哎 加油吧
回复

使用道具 举报

🔗
sooorrr 2016-8-20 04:23:45 | 只看该作者
全局:
店面这么多题还不过?这个面试官在想啥?
回复

使用道具 举报

🔗
 楼主| zhuhai_ZFC 2016-8-20 04:26:07 | 只看该作者
全局:
sooorrr 发表于 2016-8-20 04:23
店面这么多题还不过?这个面试官在想啥?

但都不是难题。。。。而且我答的不太好,尤其是最后一题,虽然以前写过一次,但是没参考过答案,可能代码不够简洁,还有漏洞。
回复

使用道具 举报

🔗
 楼主| zhuhai_ZFC 2016-8-20 04:33:25 | 只看该作者
全局:
第一题的follow up我觉得可以用哈希表记录pattern里每个字符的出现次数,然后在string里维持一个pattern大小的窗口,窗口不断后移,如果遇到一个pattern里的字符就把他的频次-1,移除一个字符就+1。同时维持一个变量记录频次为0的字符的个数。这个值一开始等于pattern里的不同的字符的数量。在移动窗口的时候,一旦有字符的频次被减为0,则将这个变量的值减一。当该变量在某个时候变为0的时候,则找到了一个permutation。
回复

使用道具 举报

🔗
edyyy 2016-8-20 04:36:47 | 只看该作者
全局:
第一题是implement strstr
回复

使用道具 举报

🔗
edyyy 2016-8-20 04:40:20 | 只看该作者
全局:
第一题是implement strstr.
第二题是Minimum Depth of Binary Tree,
第三题是read4k.   Given API: int Read4096(char* buf);  It reads data from a file and records the position so that the next time when it is called it read the next 4k chars (or the rest of the file, whichever is smaller) from the file. The return is the number of chars read.   Todo: Use above API to Implement API  "int Read(char* buf, int n)" which reads any number of chars from the file.
回复

使用道具 举报

🔗
zyoppy008 2016-8-20 04:52:20 | 只看该作者
全局:
都是原题,人品不错啦。。我昨天才面的,都是见到没见过的,连面经都没有的题,还是傻逼烙印给我面的,也挂了。 不过你好歹面了3个题,竟然也挂你?
回复

使用道具 举报

🔗
edyyy 2016-8-20 04:57:26 | 只看该作者
全局:
zyoppy008 发表于 2016-8-20 04:52
都是原题,人品不错啦。。我昨天才面的,都是见到没见过的,连面经都没有的题,还是傻逼烙印给我面的,也挂 ...

你烤了啥题?
等你有了工作也去黑烙印啊
回复

使用道具 举报

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

本版积分规则

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