聊聊跟三哥三姐面试和共事的经历

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 2376|回复: 5
收起左侧

[实习] Facebook Intern 面经

[复制链接] |试试Instant~ |关注本帖
invinsibility 发表于 2016-2-10 03:28:42 | 显示全部楼层 |阅读模式

2016(1-3月)-[]EE博士+<3个月短暂实习/全职 - 内推| 码农类General实习@Facebookfresh grad应届毕业生

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

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

x
刚刚面完facebook intern 第一轮。 题目的是cvs formatting coding and decoding. coding: 给List<String>, 变成cvs形式。例如:
1. ['ab', 'cd', 'ef'] => ab,cd,ef
2. ['a,b', 'cd'] => "a,b",cd
3. ['a"b', 'cd'] => "a""b",cd

数组里面有逗号或者双引号都要在最外面加双引号做特殊处理。没做过这个题,感觉写得磕磕碰碰的。来地理发面经攒人品,希望大家祝福我进入第二面~~



补充内容 (2016-2-12 10:09):
csv是用逗号区别一个一个string的。这里有两种特殊情况:. 牛人云集,一亩三分地
(1)当string里面本身就含有逗号的时候,这时候变成csv格式时需要在这个string外面加双引号。e.g. [‘ab,cd’, 'cat', 'w'] -> "ab,cd",cat,w

补充内容 (2016-2-12 10:11):
(2)当string里面含有双引号的时候,先把这个双引号变成两个双引号,再在外面加上双引号(天啦,这也太变态了吧!!)。e.g. ['ab"cd', 'cat', 'w'] -> "ab""cd",cat,w

评分

5

查看全部评分

本帖被以下淘专辑推荐:

woshixuyoudan 发表于 2016-2-19 10:32:22 | 显示全部楼层
感觉好奇怪的题目。。 来源一亩.三分地论坛.
祝lz好运!
回复 支持 1 反对 0

使用道具 举报

kamia 发表于 2016-2-10 03:51:30 | 显示全部楼层
给你加一点大米并祝福!
回复 支持 反对

使用道具 举报

iwofr 发表于 2016-2-18 14:44:58 | 显示全部楼层
试着写了一下csv的那个,确实挺麻烦的。。。
  1. string encode(string str) {. from: 1point3acres
  2.   string ret;
  3.   bool special = false;
    . From 1point 3acres bbs
  4.   for (char c: str) {
  5.     if (c == ',') {
  6.       special = true;. 1point 3acres 论坛
  7.       ret += c;
  8.     } else if (c == '"') {.1point3acres网
  9.       special = true;
  10.       ret += "\"\"";
  11.     } else {
  12.       ret += c;
  13.     }
  14.   }. 围观我们@1point 3 acres
  15.   if (special) {
  16.     ret = "\"" + ret + "\"";
  17.   }
  18.   return ret;
  19. }. 围观我们@1point 3 acres

  20. string csvEncode(vector<string> &strs) {
  21.   ostringstream oss;
  22.   for (auto str: strs) {
  23.     oss << encode(str);. more info on 1point3acres
  24.     oss << ",";
  25.   }.本文原创自1point3acres论坛
  26.   string ret = oss.str();
  27.   ret.pop_back();
  28.   return ret;
  29. }

  30. vector<string> csvDecode(string str) {
  31.   vector<string> ret;
  32.   int curr = 0;
  33.   while (curr < str.size()) {
  34.     ostringstream oss;
  35.     if (str[curr] == '"') {
  36.       curr++; // skip over starting "                                                                  
  37.       while (curr < str.size()) {
  38.         if (str[curr] == '"') {. 留学申请论坛-一亩三分地
  39.           if (curr+1 < str.size() && str[curr+1] == '"') {
  40.             oss << '"';
  41.             curr++;
  42.           } else { // end quote                                                                         . 留学申请论坛-一亩三分地
  43.             ret.push_back(oss.str());. from: 1point3acres
  44.             curr++;
  45.             break;
  46.           }
  47.         } else {
  48.           oss << str[curr];
  49.         }
  50.         curr++;
  51.       }
  52.       curr++; // skip ,                                                                                 
  53.     } else {
  54.       while (curr < str.size() && str[curr] != ',') {
  55.         oss << str[curr++];
  56.       }
  57.       curr++;
  58.       ret.push_back(oss.str());
  59.     }
  60.   }-google 1point3acres
  61.   return ret;
  62. }
  63. -google 1point3acres
  64. void testCSVCoding() { 来源一亩.三分地论坛.
  65.   vector<string> strs{"1991", "Fo\"rd", "E350", "Super\",\" luxurious"};
  66.   string encodestr = csvEncode(strs);
  67.   vector<string> destrs = csvDecode(encodestr);
  68.   assert(strs == destrs);
  69. }
复制代码
回复 支持 反对

使用道具 举报

yanggao1119 发表于 2016-2-24 13:44:56 | 显示全部楼层
还好吧,用stringbuilder不难的。

  public String listToCVS(List<String> input) {
    if (input == null) {
      return "";
    }
    StringBuilder result = new StringBuilder();
    for (int i = 0; i < input.size(); i++) {
.本文原创自1point3acres论坛      String word = input.get(i);
      StringBuilder temp = new StringBuilder();
      boolean needsQuoteWrapper = false;
      for (char c : word.toCharArray()) {. Waral 博客有更多文章,
        if (c == '"' || c == ',') {
          needsQuoteWrapper = true;
        }. 一亩-三分-地,独家发布
        temp.append(c);
        if (c == '"') {
          temp.append(c);. more info on 1point3acres
        }. Waral 博客有更多文章,
      }
      if (needsQuoteWrapper) {. 1point3acres
        result.append('"');
        result.append(temp);
        result.append('"');
      } else {. 1point 3acres 论坛
        result.append(temp);
      }
      if (i < input.size() - 1) {
        result.append(',');.本文原创自1point3acres论坛
      }
    }
    return result.toString();.本文原创自1point3acres论坛
  }
回复 支持 反对

使用道具 举报

 楼主| invinsibility 发表于 2016-2-25 00:20:15 | 显示全部楼层
yanggao1119 发表于 2016-2-24 13:44
还好吧,用stringbuilder不难的。. 围观我们@1point 3 acres

  public String listToCVS(List input) {
. 围观我们@1point 3 acres
你再写个CSVtoList()试试看看。
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-22 22:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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