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

Google实习三轮电面面经

全局:

2014(10-12月) 码农类General 硕士 实习@google - 内推 - 技术电面  | | Fail |

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

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

x
大概去年十月找人内推的,约了12月面试
比较意外的是他们排了3 round的phone interview (一般都是2 round)

第一round是个美国小哥,口音纯正,问怎么判断valid parenthesis input
(google) rocks
(goo) (gle) () rocks
goo (( gle )) rocks

都是valid的

google ((rocks ) 不valid

给了一个用stack的解法,遇到(就push进去,但这边不小心犯了低级错误
把一个condition里面的 || 写成了 &&
抓bug抓了有点久时间,估计是跪在这里
问有没有別的解法,回答recursive,但时间不够没有写代码,大概讲思路
看地里有人这题答到第三个follow-up是输出所有可能的pa
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
quicksort,他说他没想过可以用sorting解,所以估计这题应该还有其他方法可以解,不过我说quicksort的时候也快45min了,所以也差不多结束问了些问题

大致上感觉运气不错,遇到简单的题,印象中每题也都给了两种解法并且分析time/space complexity
本来感觉良好,后来还是掛了,估计第一面犯了低级错误可能扣了不少分

希望大家都能找到好工作!求大米



评分

参与人数 6大米 +73 收起 理由
tintinmonkey + 1 回答的很好!
milerhh + 3 感谢分享!
masa + 5 感谢分享!
eval + 3 感谢分享!
kiviljc + 1 good job

查看全部评分


上一篇:upcoming A家intern面试~
下一篇:Facebook on site
全局:
好文 Thanks for sharing! good luck
回复

使用道具 举报

推荐
mk01 2015-2-20 10:30:46 | 只看该作者
全局:
感觉可能是第三题错了,个人感觉用哈希表可以到O(N)。
  1. import java.util.HashMap;
  2. import java.util.Map;

  3. public class Couple {
  4.     public static void main(String[] args) {
  5.         int[] arr = new int[]{2, 1, 3, 1, 3, 2, 4, 4};
  6.         
  7.         System.out.println(coupleSort(arr));
  8.     }
  9.    
  10.     public static int coupleSort(int[] arr) {
  11.         int numSwaps = 0;
  12.         Map<Integer, Integer> int2index = new HashMap<>();
  13.         for (int i = 0; i < arr.length; i++) {
  14.             if (!int2index.containsKey(arr[i])) {
  15.                 int2index.put(arr[i], i);
  16.             }
  17.             else {
  18.                 if (i % 2 == 1 && int2index.get(arr[i]) == i - 1) {
  19.                     continue;
  20.                 }
  21.                 else {
  22.                     // swapping
  23.                     if (int2index.get(arr[i]) % 2 == 0) {
  24.                         swap(i, int2index.get(arr[i]) + 1, arr);
  25.                     }
  26.                     else {
  27.                         swap(i, int2index.get(arr[i]) - 1, arr);
  28.                     }
  29.                     
  30.                     numSwaps++;
  31.                     int2index.remove(arr[i]);
  32.                     i--;
  33.                 }
  34.             }
  35.         }
  36.         
  37.         return numSwaps;
  38.     }
  39.    
  40.     public static void swap(int i, int j, int[] arr) {
  41.         int tmp = arr[i];
  42.         arr[i] = arr[j];
  43.         arr[j] = tmp;
  44.     }
  45. }
复制代码
回复

使用道具 举报

全局:
感觉是不是这样就可以了
用一个map存char及它首次出现的position;
对于每个char,如果它之前没有出现过,就把它存到map里;如果出现过,就将它与之前出现过的该char后面一个char互换。
  1.         public void minimumSwap(char[] chars){
  2.                 Map<Character, Integer> map = new HashMap();
  3.                 for(int i = 0; i < chars.length; i ++){
  4.                         if(! map.containsKey(chars[i]))
  5.                                 map.put(chars[i], i);
  6.                         else{
  7.                                 char c = chars[i];
  8.                                 int index = map.get(c);
  9.                                 chars[i] = chars[index + 1];
  10.                                 chars[index+1] = c;
  11.                                 map.put(chars[i], i);
  12.                         }
  13.                 }
  14.         }
复制代码
回复

使用道具 举报

🔗
Washingtonwei 2015-1-26 07:47:52 | 只看该作者
全局:
第三题,或许用HashMap?记录Character和该字符第二次出现index
回复

使用道具 举报

🔗
llk小马甲 2015-8-21 03:30:43 | 只看该作者
全局:
mk01 发表于 2015-2-20 10:30
感觉可能是第三题错了,个人感觉用哈希表可以到O(N)。

请问可以详细讲一下吗?为什么会分index的奇偶讨论呢?谢谢!
回复

使用道具 举报

🔗
hbsophia 2015-8-31 04:01:07 | 只看该作者
全局:
mk01 发表于 2015-2-20 10:30
感觉可能是第三题错了,个人感觉用哈希表可以到O(N)。

大牛,这个题目可以麻烦你再讲详细点嘛?谢谢了。
回复

使用道具 举报

🔗
danchou 2015-8-31 12:12:07 | 只看该作者
全局:
第三题怎么做。。Greedy可行吗?
回复

使用道具 举报

🔗
mileschen2008 2015-10-5 09:49:09 | 只看该作者
全局:
mk01 发表于 2015-2-20 10:30
感觉可能是第三题错了,个人感觉用哈希表可以到O(N)。

Couple swap确实很难啊,能讲讲思路以及为啥是minimum swap么?
回复

使用道具 举报

🔗
怪兽岛 2015-10-6 06:53:07 | 只看该作者
全局:
没看懂楼上的Couple Sort的解法,感觉这个解法是在数一种swap的方案有多少次交换,但没能解释是否是最优。因为似乎该答案是碰到重复的看第一次出现的字母是奇数index还是偶数index,奇数向前换偶数向后换,这样的话以下这个例子就不成立了:FABCCDDAB。A是第一个需要swap的,而由于第一次出现的A是index == 1,是奇数,所以它会换到F处,而最优解应该是AB相换。

回复

使用道具 举报

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

本版积分规则

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