May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 3262|回复: 20
收起左侧

Facebook跪经

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

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

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

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

x
FaceBook一面 简单题跪了。。。好在拿到了二面机会 求人品!!. from: 1point3acres.com/bbs
. visit 1point3acres.com for more.
白人小哥,上来就吹自己以前在Google多屌多屌之类的。。。然后上题
1. leetcode原题,strstr,唯一区别就是参数是char array,不让用string方法做(当然也包括stringbuilder),返回在hackstack里第一次匹配needle的substring的第一个字符下标,后来想想这哥们写c和c++的,也就make sense了。。. from: 1point3acres.com/bbs
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....... 1point 3acres 璁哄潧

求二面好运~~~

评分

3

查看全部评分

todayand 发表于 2016-3-25 09:59:50 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
lz为什么有二面机会啊?
回复 支持 反对

使用道具 举报

 楼主| wangmengcathy 发表于 2016-3-25 13:00:51 | 显示全部楼层
关注一亩三分地微博:
Warald
todayand 发表于 2016-3-25 09:59
lz为什么有二面机会啊?

给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;. From 1point 3acres bbs

        for (int i = 0; i < len1; i++). 鍥磋鎴戜滑@1point 3 acres
            for (int j = 0; j < s[i].length(); j++) {
                int temp_i = i;
                int temp_j = j;

                int k = 0;

                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()){. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
                        temp_i++;
                        temp_j = 0;
                    } else. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                        break;
                }
. Waral 鍗氬鏈夋洿澶氭枃绔,
                if (k == len2)
                    return index;. 1point3acres.com/bbs
                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 | 显示全部楼层
写了下代码,还得复杂的指针操作. 鍥磋鎴戜滑@1point 3 acres
  1. public class StrstrII {
  2. . 1point3acres.com/bbs
  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');. more info on 1point3acres.com
  12.                 list2.add('c');
  13.                 list2.add('b');
  14.                 list2.add('d');
  15.                 haystack.add(list1);. more info on 1point3acres.com
  16.                 haystack.add(list2);
  17.                 System.out.println(findNeedleInHaystack(haystack, "ccbd"));
  18.                 System.out.println(findNeedleInHaystack(haystack, "bd"));
    . from: 1point3acres.com/bbs
  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++;
  31.                                         posJ++;.1point3acres缃
  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.                                 }-google 1point3acres
  42.                         }
  43.                         total += haystack.get(i).size();
  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了吗?
-google 1point3acres
我那批是最后一波了就
回复 支持 反对

使用道具 举报

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) {. 鍥磋鎴戜滑@1point 3 acres
  3.     for (int i = 0; i + c2.length <= c1.length; i++) {
  4.       boolean match = true;.1point3acres缃
  5.       for (int j = 0; j < c2.length; j++) {. 1point 3acres 璁哄潧
  6.         if (c1[i + j] != c2[j]) {
  7.           match = false;
  8.           break;.1point3acres缃
  9.         }
  10.       }.鐣欏璁哄潧-涓浜-涓夊垎鍦
  11.       if (match) {
  12.         return i;
  13.       }
  14.     }
  15.     return -1;
  16.   }

  17.   int twoone(int i, int j, int m, int n) {
  18.     return i * n + j;
  19.   }

  20.   int[] onetwo(int i, int m, int n) {
  21.     return new int[] {i / n, i % n};
  22.   }

  23.   public int strstr(char[][] c1, char[] c2) {
  24.     int m = c1.length;
  25.     int n = c1[0].length;. 1point 3acres 璁哄潧
  26.     for (int i = 0; i + c2.length <= m * n; i++) {
  27.       boolean match = true;
  28.       for (int j = 0; j < c2.length; j++) {
  29.         int idx[] = onetwo(i + j, m, n);
  30.         if (c1[idx[0]][idx[1]] != c2[j]) {
  31.           match = false;
  32.           break;
  33.         }
  34.       }
  35.       if (match) {.1point3acres缃
  36.         return i;
  37.       }
  38.     }. From 1point 3acres bbs
  39.     return -1;
  40.   }
  41. . 鍥磋鎴戜滑@1point 3 acres
  42.   public static void main(String[] args) {
  43.     Solution s = new Solution();
  44.     System.out.println(s.strstr(new char[] {'a', 'b', 'c', 'c', 0}, new char[] {'c', 'c'}));
  45.     System.out.println(s.strstr(new char[][] {{'a', 'b', 'c', 'c'}, {'c', 'b', 'd', 0}},
  46.         new char[] {'c', 'c', 'b', 'd'}));
  47.     System.out.println(
  48.         s.strstr(new char[][] {{'a', 'b', 'c', 'c'}, {'c', 'b', 'd', 0}}, new char[] {'b', 'd'}));
  49.     return;
  50.   }
  51. }
复制代码
回复 支持 反对

使用道具 举报

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'} 应该返回啥?

带上下左右搜么,还是只能按照从左到右的顺序 search 下一个 字符?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-23 22:46

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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