一亩三分地论坛

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

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

google 加面电面跪经

[复制链接] |试试Instant~ |关注本帖
a27400 发表于 2016-3-30 05:10:20 | 显示全部楼层 |阅读模式

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

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

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

x
刚刚面试完   感觉应该是跪了……求评估
不知道大家有没有这种感觉  就是平时跟别人对话的时候听到的英语都好听懂一些  电话面试的时候对方说话就特别不清晰
我是这样  如果大家都不是那就是我英语太差了。。。一面的时候用的ipad接了个外接音响这样子,感觉面试官说话声音嗡嗡的 听不清 应该不是音响的问题  感觉对方用了免提 也不是音量的问题  就是just听不清。。。-google 1point3acres

一面的时候问的问题超简单超naive,估计觉得没问出水平来所以给了加面。

二面的时候面试官上来就问我,你有什么问题要问我?然后blabla聊了两分钟  一边说还一边嘿嘿嘿地笑我也不知道是什么鬼 说完还问我“did i answer your question”
我其实啥都没听懂   还是说哈哈好的谢谢
没叫我做自我介绍就直接上题了。
就是说,一个字符串里面word和word之间有空格让我把word分开来存在一个List<String>里面返回。但是有特殊情况
就是比如“hello thank you”我就返回“hello”“thank”“you” 但是如果是“my name is \“Donald duck\””就应该把Donald duck认作一个词。
还有比如“      \“   \”     ”就应该返回引号里面的那个词(就是那几个空格)
然后我就说那就先用空格split成一个string 的list再看哪个有引号的就往前append,面试官说好啊你写吧
我就照我这个思路写。写着写着我发现  不对啊!我用split的话引号里面的空格不久都消失了吗!这个时候面试官也提出了这个问题
我就慌了,然后面试官说可以用引号分隔再用空格分隔的嘛    然后我不知道怎么脑子秀逗了就问他你的字符串里那个引号是正引号还是反引号
因为听不清  这个地方折腾了好久  然后才知道他说的是因为google doc会把两种引号区别开来   完了他又说了个让人心如乱麻的特殊情况:
“   \”   ”
我说   单数个引号 啊  那怎么办 你这样子的情况我应该返回什么   他blabla说了一大堆我没有听懂   然后我说我没听懂麻烦你再说一遍  
他就说啊  有很多种解决方法啊, 你选一个啊, 如果就不管他 比如什么  比如什么  . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
我就只听懂了“不管他”我就说啊那我就不管他吧 那个时候还有十分钟了
于是决定用两个指针指着跑,不断地把带两个引号的片段给抠出来
我卯足了劲儿写啊   没写完  还有三分钟的时候面试官说  你得把第一个版本恢复出来  不然我没法给你写evaluation.1point3acres缃
我心里  全是点点点   然后我就把v2粘出来然后把v1恢复出来  再把没写完的v2粘了回去。
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
然后就say goodbye了

难过  感觉我本来可以写完  就是因为听不清面试官说啥浪费了好多时间  唉
.1point3acres缃

补充内容 (2016-4-9 11:34):
昨天收到电话  挂了。。。哎

评分

2

查看全部评分

bobzhang2004 发表于 2016-3-30 23:28:52 | 显示全部楼层
贴一下代码
  1. public class SplitStringII {

  2.         public static List<String> split(String s) {
  3.                 List<String> result = new ArrayList<String>();
  4.                 if (s == null || s.length() == 0) {
  5.                         return result;
  6.                 }

  7.                 boolean inQuote = false;
  8.                 StringBuilder temp = new StringBuilder();
  9.                 for (int i = 0; i < s.length(); i++) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  10.                         char c = s.charAt(i);
  11.                         if (!inQuote) {
  12.                                 if (c == '\"') {.鐣欏璁哄潧-涓浜-涓夊垎鍦
  13.                                         inQuote = true;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  14.                                 } else if (c == ' ' && temp.length() != 0) {
  15.                                         result.add(temp.toString()); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  16.                                         temp.setLength(0);
  17.                                 } else if (c != ' ') {
  18.                                         temp.append(c);
  19.                                 }
  20.                         } else {
  21.                                 if (c == '\"') {
  22.                                         result.add(temp.toString());
  23.                                         temp.setLength(0);
  24.                                         inQuote = false;
  25.                                 } else {
  26.                                         temp.append(c);
  27.                                 }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  28.                         }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  29.                 }

  30.                 if (temp.length() != 0) {
  31.                         result.add(temp.toString());
  32.                 }

  33.                 return result;
  34.         }

  35.         public static void main(String[] args) {
  36.                 // TODO Auto-generated method stub
  37.                 String s = "This is \"an example\" string.";
  38.                 List<String> result = split(s);
  39. . 1point3acres.com/bbs
  40.                 for (String str : result) {
  41.                         System.out.println(str);
  42.                 }
  43.         }

  44. }
复制代码
回复 支持 1 反对 0

使用道具 举报

lyfff620 发表于 2016-3-30 05:48:36 | 显示全部楼层
顶!加油!期待人品大爆发!
回复 支持 反对

使用道具 举报

Fustang 发表于 2016-3-30 07:22:31 | 显示全部楼层
用indexOf是不是简洁一些?和two pointer思路一样
遍历时,如果遇到空格就用Java的indexOf去找当前起的下一个空格,然后两个空格间的部分作为一个词
如果遇到引号就用indexOf去找下一个引号(如果找不到那么这个就是单数型引号,忽略对其特殊处理),然后两个引号间的部分作为一个词
回复 支持 反对

使用道具 举报

 楼主| a27400 发表于 2016-3-30 08:37:22 | 显示全部楼层
[quote][url=forum.php?mod=redirect

是的 当时完全慌了神了
回复 支持 反对

使用道具 举报

houqingniao 发表于 2016-3-30 10:25:39 | 显示全部楼层
感觉用split来分,不太好做啊,都会把quot词里面的割裂开了
回复 支持 反对

使用道具 举报

say543 发表于 2016-3-30 12:51:19 | 显示全部楼层
感谢分享 考虑follow up case 老实一个个parsing 用space or out of length or \" 来当作string terminate 比较ok...
回复 支持 反对

使用道具 举报

mingzhou1987 发表于 2016-3-30 14:12:47 | 显示全部楼层
感觉这题corner case有点多啊,要考虑只有一个\" 还有leading和trailng space么?
回复 支持 反对

使用道具 举报

dimi 发表于 2016-3-30 22:05:44 | 显示全部楼层
这题目让他把规则说清楚了。否则没发作。。
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2016-3-30 23:23:40 | 显示全部楼层
用指针遍历
回复 支持 反对

使用道具 举报

chenyuhaohy 发表于 2016-3-31 02:09:10 | 显示全部楼层
就算用空格分割应该也行的吧。可以像match括号一样match opening and closing quotes
回复 支持 反对

使用道具 举报

chenyuhaohy 发表于 2016-3-31 02:10:38 | 显示全部楼层
而且为啥英文里面会有开引号和闭引号 求解。。不都是一样的吗
回复 支持 反对

使用道具 举报

chenyuhaohy 发表于 2016-3-31 02:12:02 | 显示全部楼层
而且英文不是不区分open和close引号的么
回复 支持 反对

使用道具 举报

 楼主| a27400 发表于 2016-3-31 03:29:26 | 显示全部楼层
mingzhou1987 发表于 2016-3-30 14:12
感觉这题corner case有点多啊,要考虑只有一个\" 还有leading和trailng space么?

是的  还要trim一下
回复 支持 反对

使用道具 举报

 楼主| a27400 发表于 2016-3-31 03:29:55 | 显示全部楼层
chenyuhaohy 发表于 2016-3-31 02:12
而且英文不是不区分open和close引号的么

是啊!!!!但是在google doc上打出来就是不一样啊! 楼主就这样被绕进去了...
回复 支持 反对

使用道具 举报

Alice0701 发表于 2016-4-4 05:44:55 | 显示全部楼层
希望楼主好运啊 思路一旦打乱真是很容易慌神的
回复 支持 反对

使用道具 举报

farm 发表于 2016-4-4 08:52:31 | 显示全部楼层
怎么会考这种题目啊?好奇怪. 鍥磋鎴戜滑@1point 3 acres
想起来很复杂,但是一点算法,数据结构都没有
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-5 16:48

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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