一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2438|回复: 20
收起左侧

Facebook跪经

[复制链接] |试试Instant~ |关注本帖
wangmengcathy 发表于 2016-3-25 04:21:13 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 全职@Facebook - 内推 - 技术电面 |Failfresh grad应届毕业生

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

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

x
FaceBook一面 简单题跪了。。。好在拿到了二面机会 求人品!!

白人小哥,上来就吹自己以前在Google多屌多屌之类的。。。然后上题. 1point 3acres 璁哄潧
1. leetcode原题,strstr,唯一区别就是参数是char array,不让用string方法做(当然也包括stringbuilder),返回在hackstack里第一次匹配needle的substring的第一个字符下标,后来想想这哥们写c和c++的,也就make sense了。。
2. 第一题秒之后,迅速又粘了一段,大意就是把第一个haystack参数变成一个二维数组,然后找needle在haystack第一次出现的位置,同样的不能用string相关方法,还是返回把haystack[][]二维数组看成一维以后的第一次匹配的字符下标,举例:haystack := [[a,b,c,c], [c,b,d]], needle := [c,c,b,d] , return 2; needle := [b, d] return 5 (5是把haystack看成一维的以后的找到第一个bd以后b的下标)。

第二题感觉写出框架来以后逻辑比较混乱,代码比较丑,没时间debug了,果然没有Onsite.......鏈枃鍘熷垱鑷1point3acres璁哄潧
.鐣欏璁哄潧-涓浜-涓夊垎鍦
求二面好运~~~

评分

3

查看全部评分

todayand 发表于 2016-3-25 09:59:50 | 显示全部楼层
lz为什么有二面机会啊?
回复 支持 反对

使用道具 举报

 楼主| wangmengcathy 发表于 2016-3-25 13:00:51 | 显示全部楼层
todayand 发表于 2016-3-25 09:59
lz为什么有二面机会啊?
-google 1point3acres
给HR跪舔了一下。。
回复 支持 反对

使用道具 举报

duduhaha 发表于 2016-3-25 14:50:09 | 显示全部楼层
第二题写了个,感觉写好还是要些时间的。
public static int strstr(String[] s, String t) {
        int len1 = s.length, len2 = t.length(), index = 0;

        for (int i = 0; i < len1; i++)
            for (int j = 0; j < s[i].length(); j++) {
                int temp_i = i;
                int temp_j = j;
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                int k = 0;. visit 1point3acres.com for more.

                for ( ; temp_i < len1 && k < len2; ) {
                    if (temp_j < s[temp_i].length() && s[temp_i].charAt(temp_j) == t.charAt(k)) {
                        k++;
                        temp_j++;
                    } else if (temp_j == s[temp_i].length()){. Waral 鍗氬鏈夋洿澶氭枃绔,
                        temp_i++;-google 1point3acres
                        temp_j = 0;
                    } else. 1point 3acres 璁哄潧
                        break;
                }

                if (k == len2)
                    return index;
                else
                    index++;
            }

        return -1;
    }
回复 支持 反对

使用道具 举报

freemail165 发表于 2016-3-28 04:52:50 | 显示全部楼层
第一题就brute force 还是KMP?
回复 支持 反对

使用道具 举报

yueliu2366 发表于 2016-3-28 06:04:24 | 显示全部楼层
请问楼主是硕士全职吗?不是说fb今年不招new grad了吗?
回复 支持 反对

使用道具 举报

jeremy_sea 发表于 2016-4-3 05:40:35 | 显示全部楼层
第二题不是把outer loop serialize就行了吗?
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2016-4-4 00:03:51 | 显示全部楼层
"haystack := [[a,b,c,c], [c,b,d]], needle := [c,c,b,d] , return 2; "应该是返回3吧
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2016-4-4 00:04:32 | 显示全部楼层
写了下代码,还得复杂的指针操作
  1. public class StrstrII {
  2. . more info on 1point3acres.com
  3.         public static void main(String[] args) {
  4.                 List<List<Character>> haystack = new ArrayList<List<Character>>();
  5.                 List<Character> list1 = new ArrayList<Character>();
  6.                 list1.add('a');
  7.                 list1.add('b');
  8.                 list1.add('c');
  9.                 list1.add('c');
  10.                 List<Character> list2 = new ArrayList<Character>();
  11.                 list2.add('c');
  12.                 list2.add('c');
  13.                 list2.add('b');
  14.                 list2.add('d');
  15.                 haystack.add(list1);
  16.                 haystack.add(list2);
  17.                 System.out.println(findNeedleInHaystack(haystack, "ccbd"));
  18.                 System.out.println(findNeedleInHaystack(haystack, "bd"));
  19.         }
  20.        
  21.         public static int findNeedleInHaystack(List<List<Character>> haystack, String needle) {
  22.                 int total = 0;
  23.                 for (int i = 0; i < haystack.size(); i++) {
  24.                         for (int j = 0; j < haystack.get(i).size(); j++) {
  25.                                 int k = 0;
  26.                                 int posI = i;
  27.                                 int posJ = j;
  28.                                
  29.                                 while ((posI < haystack.size() && posJ < haystack.get(posI).size()) && haystack.get(posI).get(posJ) == needle.charAt(k)) {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  30.                                         k++;. Waral 鍗氬鏈夋洿澶氭枃绔,
  31.                                         posJ++;
  32. //                                        System.out.println("test" + " " + i + " " + j + " " + k) ;
  33.                                         if (posJ == haystack.get(posI).size()) {
  34.                                                 posI++;
  35.                                                 posJ = 0;
  36.                                         }
  37.                                 }
  38. //                                System.out.println(k + " k");
  39.                                 if (k == needle.length()) {
  40.                                         return total + j - 1;
  41.                                 }
  42.                         }
  43.                         total += haystack.get(i).size();.1point3acres缃
  44.                 }
  45.                
  46.                 return -1;
  47.         }
  48. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| wangmengcathy 发表于 2016-4-4 04:50:42 | 显示全部楼层
freemail165 发表于 2016-3-28 04:52
第一题就brute force 还是KMP?
.鏈枃鍘熷垱鑷1point3acres璁哄潧
brute force就行,电面他家好多回了。。他家就是喜欢一道leetcode 加一个变种follow-up
回复 支持 反对

使用道具 举报

 楼主| wangmengcathy 发表于 2016-4-4 04:50:56 | 显示全部楼层
yueliu2366 发表于 2016-3-28 06:04
请问楼主是硕士全职吗?不是说fb今年不招new grad了吗?

我那批是最后一波了就
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-4 07:20:10 | 显示全部楼层
freemail165 发表于 2016-3-28 04:52
第一题就brute force 还是KMP?

同问同问同问同问
回复 支持 反对

使用道具 举报

sealove999 发表于 2016-4-4 07:44:19 | 显示全部楼层
没看懂的为什么楼主ccbd是2的,为啥[][]数组的2个分量长度还不一样. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  1. public class Solution {
  2.   public int strstr(char[] c1, char[] c2) {
  3.     for (int i = 0; i + c2.length <= c1.length; i++) {
  4.       boolean match = true;
  5.       for (int j = 0; j < c2.length; j++) {
  6.         if (c1[i + j] != c2[j]) {
  7.           match = false;
  8.           break;
  9.         }
  10.       }
  11.       if (match) {
  12.         return i;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  13.       }
  14.     }
  15.     return -1;
  16.   }
  17. . from: 1point3acres.com/bbs
  18.   int twoone(int i, int j, int m, int n) {
  19.     return i * n + j;
  20.   }. Waral 鍗氬鏈夋洿澶氭枃绔,
  21. . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  22.   int[] onetwo(int i, int m, int n) {
  23.     return new int[] {i / n, i % n};
  24.   }

  25.   public int strstr(char[][] c1, char[] c2) {
    . visit 1point3acres.com for more.
  26.     int m = c1.length;
  27.     int n = c1[0].length;
  28.     for (int i = 0; i + c2.length <= m * n; i++) {
  29.       boolean match = true;
  30.       for (int j = 0; j < c2.length; j++) {
  31.         int idx[] = onetwo(i + j, m, n);. From 1point 3acres bbs
  32.         if (c1[idx[0]][idx[1]] != c2[j]) {. 鍥磋鎴戜滑@1point 3 acres
  33.           match = false;
  34.           break;.1point3acres缃
  35.         }
  36.       }. more info on 1point3acres.com
  37.       if (match) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  38.         return i;
  39.       }
  40.     }
  41.     return -1;
  42.   }

  43.   public static void main(String[] args) {
  44.     Solution s = new Solution();
  45.     System.out.println(s.strstr(new char[] {'a', 'b', 'c', 'c', 0}, new char[] {'c', 'c'}));
  46.     System.out.println(s.strstr(new char[][] {{'a', 'b', 'c', 'c'}, {'c', 'b', 'd', 0}},
  47.         new char[] {'c', 'c', 'b', 'd'}));
  48.     System.out.println(
  49.         s.strstr(new char[][] {{'a', 'b', 'c', 'c'}, {'c', 'b', 'd', 0}}, new char[] {'b', 'd'}));
  50.     return;
  51.   }
  52. }
复制代码
回复 支持 反对

使用道具 举报

zyoppy008 发表于 2016-8-19 16:04:55 来自手机 | 显示全部楼层
怎么跪舔啊 我今天也没面好 hr告知已挂 怎么求二面
回复 支持 反对

使用道具 举报

stephaniede 发表于 2016-8-27 03:47:04 | 显示全部楼层
第二题把二维变为一维,然后用第一题的方法做就好了吧~
回复 支持 反对

使用道具 举报

zyoppy008 发表于 2016-8-27 04:39:33 | 显示全部楼层
楼主不在吗? = = 我也想跪舔hr求加面,求方法
回复 支持 反对

使用道具 举报

cicean 发表于 2016-9-7 06:15:10 | 显示全部楼层
第二题好像 wordsearch 啊
回复 支持 反对

使用道具 举报

cicean 发表于 2016-9-7 06:16:34 | 显示全部楼层
第二题输入 还是char[][]了
回复 支持 反对

使用道具 举报

cicean 发表于 2016-9-7 07:10:21 | 显示全部楼层
{{'a', 'b', 'c', 'c'}, {'b', 'd'}}; { 'c','b', 'd'} 应该返回啥?
回复 支持 反对

使用道具 举报

cicean 发表于 2016-9-7 07:15:56 | 显示全部楼层
cicean 发表于 2016-9-7 07:10
{{'a', 'b', 'c', 'c'}, {'b', 'd'}}; { 'c','b', 'd'} 应该返回啥?
-google 1point3acres
带上下左右搜么,还是只能按照从左到右的顺序 search 下一个 字符?
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-1-17 17:35

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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