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

Google 2/25 onsite面经

全局:

2016(1-3月) 码农类General 硕士 全职@google - 内推 - Onsite  | | Other | 应届毕业生

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

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

x
刚从google回酒店,就把面经写了吧。也许因为不是第一次挂面试了,所以这次比较淡定?


1. 三哥,口音没有那么那么重,勉强听得懂。这轮感觉面的最好。
    给一个List<Iterator>,写一个method next(),每次调用这个method,输出所有iterator里的最小值。
    本质就是merge k sorted list。用heap。

2. 老美,从头到尾冷面。只有最后聊他的经历的时候很开心,眉飞色舞。感觉这轮的follow up 有点难。第3)问基本就是他一步一个hint我才答出来的。
    1) encode string: 例如 abbbbbc  -> a5xbc.  我大概花了15分钟写代码。搞定 bugfree。

    2) 如果有个string already in an encoded form, we want to decode it.  Find a type of strings that may cause problem when decoding.
         abbbbbc ->(encode) a5xbc -> (decode) abbbbbc, this one is OK
         a5xbc ->(encode)  a5xbc -> (decode) abbbbbc , this one has problem.   
         实际就是 如果原始string里包含“数字 + x + 任意字符”这种格式的就会有问题。
    3) how to modify the way
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
otherwise false。
           自我感觉这个算法没问题,面试官觉得我大概是对的,只不过我的思路和他的不一样。时间快到了,他把我的算法思路的草稿拍了照就结束了。

楼主5月毕业,到今天为止面试全挂完了,没有面试了。不知道后面怎么办。(已投了30+家公司了。)

就这样吧,感觉过的可能性不大,自己的简历作死。谢谢大家,欢迎提问。(不过请尽量不要问楼主第三轮,人生已经如此艰难,有些事情你又何必拆穿?)




补充内容 (2016-2-26 08:57):
“堆成的square matrix” , 实际是 “对称的square matrix”。 Typo,见谅~

补充内容 (2016-3-10 07:14):
3/7 进hc
3/9 挂了

评分

参与人数 4大米 +12 收起 理由
dr.pro + 3 很有用的信息!
guixi107 + 3 谢谢你的介绍!
zjuzqh + 3 感谢分享!
todayand + 3 感谢分享!

查看全部评分


上一篇:Amazon神奇面经
下一篇:Google Intern 新鲜面筋
全局:
写了下第二轮的代码
  1. public class StringEncodeAndDecode {
  2.        
  3.         public static void main(String[] args) {
  4.                 System.out.println(encodeForQ1("abbbbbbbbbbbbbc"));
  5.                 String enStr = encodeFollowUp("a5xbc");
  6.                 System.out.println(enStr);
  7.                 System.out.println(decodeFollowUp(enStr));
  8.         }
  9.        
  10.         public static String encodeForQ1(String str) {
  11.                 if (str == null || str.length() == 0) {
  12.                         return "";
  13.                 }
  14.                 int i = 0;
  15.                 StringBuilder sb = new StringBuilder();
  16.                 while (i < str.length()) {
  17.                         int j = i + 1;
  18.                         while (j < str.length() && str.charAt(j) == str.charAt(i)) {
  19.                                 j++;
  20.                         }
  21.                         int diff = j - i;
  22.                         String s = String.valueOf(diff) + "x"+ str.charAt(i);
  23.                         if (s.length() < diff) {
  24.                                 sb.append(s);
  25.                         } else {
  26.                                 sb.append(str.substring(i, j));
  27.                         }
  28.                         i = j;
  29.                 }
  30.                
  31.                 return sb.toString();
  32.         }
  33.        
  34.         public static String encodeFollowUp(String str) {
  35.                 if (str == null || str.length() == 0) {
  36.                         return "";
  37.                 }
  38.                 int i = 0;
  39.                
  40.                 StringBuilder sb = new StringBuilder();
  41.                 while (i < str.length()) {
  42.                         char curChar = str.charAt(i);
  43.                         int j = i + 1;
  44.                         while (j < str.length() && str.charAt(j) == curChar) {
  45.                                 j++;
  46.                         }
  47.                         int diff = j - i;
  48.                         String s = String.valueOf(diff) + "x"+ curChar;
  49.                         if (s.length() < diff || curChar == 'x' || Character.isDigit(curChar)) {
  50.                                 sb.append(s);
  51.                         } else {
  52.                                 sb.append(str.substring(i, j));
  53.                         }
  54.                         i = j;
  55.                 }
  56.                
  57.                 return sb.toString();
  58.         }
  59.        
  60.         // a1x51xxbc
  61.         public static String decodeFollowUp(String str) {
  62.                 if (str == null || str.length() == 0) {
  63.                         return "";
  64.                 }
  65.                 int i = 0;
  66.                 StringBuilder sb = new StringBuilder();
  67.                 while (i < str.length()) {
  68.                         int index = str.indexOf('x', i);
  69.                         if (index == -1) {
  70.                                 sb.append(str.substring(i));
  71.                                 break;
  72.                         } else {
  73.                                 int j = index - 1;
  74.                                 while (j >= i && Character.isDigit(str.charAt(j))) {
  75.                                         j--;
  76.                                 }
  77.                                 if (j >= i) {
  78.                                         sb.append(str.substring(i, j + 1));
  79.                                 }
  80.                                 int count = Integer.valueOf(str.substring(j + 1, index));
  81.                                 for (int k = 0; k < count; k++) {
  82.                                         sb.append(str.charAt(index + 1));
  83.                                 }
  84.                                 i = index + 2;
  85.                         }
  86.                 }
  87.                
  88.                 return sb.toString();
  89.         }
  90.        
  91. }
复制代码
回复

使用道具 举报

推荐
superbeet 2016-4-15 02:15:39 | 只看该作者
全局:
判断一个square matrix是否对称。 这应该是个warm up题。其实不需要旋转矩阵,横纵坐标交换比较一下即可,10行内搞定。
回复

使用道具 举报

推荐
duduhaha 2016-2-26 14:20:50 | 只看该作者
全局:
楼主的的encode那题需要始终对x 和数字编码。例如:
aa51x -> aa1x51x11xx

为了保证编码长度最短,当一个字符重复次数小于3时,不要编码,aa不用变成2xa

评分

参与人数 1大米 +5 收起 理由
hzyslddm + 5 感谢分享!

查看全部评分

回复

使用道具 举报

🔗
yayayouknow 2016-2-26 09:50:12 | 只看该作者
全局:
所以说补充的“对称”是指旋转180度对称?
回复

使用道具 举报

🔗
 楼主| panlong222 2016-2-26 09:52:18 | 只看该作者
全局:
yayayouknow 发表于 2016-2-26 09:50
所以说补充的“对称”是指旋转180度对称?

yes                                          
回复

使用道具 举报

🔗
yayayouknow 2016-2-26 09:54:45 | 只看该作者
全局:

哦,thanks~~祝楼主好运~
回复

使用道具 举报

全局:
encoding第三个follow up就是像你说的那样啊
回复

使用道具 举报

🔗
 楼主| panlong222 2016-2-26 14:28:42 | 只看该作者
全局:
duduhaha 发表于 2016-2-26 14:20
楼主的的encode那题需要始终对x 和数字编码。例如:
aa51x -> aa1x51x11xx

厉害,大神受我一拜....
回复

使用道具 举报

🔗
duduhaha 2016-2-26 14:33:03 | 只看该作者
全局:
panlong222 发表于 2016-2-26 14:28
厉害,大神受我一拜....

哪里。。这题我也是因为见过,第一次见很难搞明白。。
回复

使用道具 举报

🔗
lefttree 2016-2-26 16:05:42 | 只看该作者
全局:
其实lz答的挺好的,祝好运!
回复

使用道具 举报

🔗
lotustree86 2016-2-26 17:44:23 | 只看该作者
全局:
最后一题Union find比较好吧
回复

使用道具 举报

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

本版积分规则

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