【通知】7月22,工业界资深数据科学家教你破解各大公司面试!


一亩三分地论坛

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

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

Google Onsite Interview(帮同学发的)

[复制链接] |试试Instant~ |关注本帖
sumingche 发表于 2014-1-26 06:25:17 | 显示全部楼层 |阅读模式

2013(10-12月) 码农类 硕士 全职@Google - 内推 - Onsite |Pass

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

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

x
Pittsburgh Offcie Onsite interview. CMU的同学找人refer后,可以直接去google onsite interview 不需要经过任何phone interview,面上之后,也可以去Mount View或者其他office, 貌似留在pittsburgh office或者 Mount View的概率大些,不过大部分人都去Mount View啦。一共面试了五轮.
第一个轮是给一个字符串,比如{a,b}xy{c,d,e},返回所有的combination,也就是axyc, axyd, axye, bxyc, bxyd, bxye

第二个是有一个5*6的方格子,上面有26个字母和4个空格,给你两个字母,找到一个到另一个的路径
. more info on 1point3acres.com
第三轮是给一个文本,输出其中所有的bi-gram的次数。比如a b c b c就是“a b”1次,"b c"2次,“c b”1次。. from: 1point3acres.com/bbs

第四轮是给分子和分母,用string表示除法后的结果,无限循环小数部分用括号括起来。比如1/11就是0.(09)

. visit 1point3acres.com for more.
第五轮是给一个BST,可以有duplicate values,找出出现次数最多的value,还问了一个把aabbbcc压缩成a*2b*3c*2,再解压缩,原来的字符串里可能也有数字和*. 鍥磋鎴戜滑@1point 3 acres



评分

4

查看全部评分

本帖被以下淘专辑推荐:

shire1989 发表于 2014-5-10 01:01:11 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
有一个5*6的方格子,上面有26个字母和4个空格,给你两个字母,找到一个到另一个的路径
. 鍥磋鎴戜滑@1point 3 acres这个什么意思,就是空格不可以走是吗?
回复 支持 反对

使用道具 举报

taconite 发表于 2014-5-22 13:52:18 | 显示全部楼层
关注一亩三分地微博:
Warald
第二题大概是最后一行有四个空格吧. 1point3acres.com/bbs
ABCDE
FGHIJ. 1point3acres.com/bbs
KLMNO
-google 1point3acresPQRST 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
UVWXY
Z. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
主要考察你怎么处理起点/终点是Z这个edge case,之前在G碰到过一个类似的。。
回复 支持 反对

使用道具 举报

zhenzhenanan 发表于 2014-7-23 12:56:49 | 显示全部楼层
贴出第四题我的答案,欢迎讨论~~
  1. /*
  2. * http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=81559&extra=page%3D3%26filter%3Dsortid%26sortid%3D311%26sortid%3D311
  3. * Question 4
  4. */
  5. . From 1point 3acres bbs
  6. #include <iostream>
  7. #include <unordered_map>. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  8. using namespace std;

  9. string devide(int a, int b) {
  10.         //assert(b != 0);
  11.         string result = "";

  12.         if (a >= b && a % b == 0)
    . visit 1point3acres.com for more.
  13.                 return std::to_string(a/b);

  14.         else if (a > b) {
  15.                 result += (a / b) + '0';
  16.                 result += '.';
  17.                 a = a % b;
  18.         }

  19.         else { // a < b
  20.                 result += "0.";. from: 1point3acres.com/bbs
  21.         }

  22.         unordered_map<int, int> table;

  23.         while (true) {
  24.                 a = a * 10;
  25.                 while (a < b) {
  26.                         a *= 10;.1point3acres缃
  27.                         result += "0";
  28.                 }
  29.                 int mod = a % b;
  30.                 if (mod == 0) {
  31.                         result += std::to_string(a / b);
  32.                         return result;
  33.                 }
  34. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  35.                 if (table.find(mod) == table.end()) {
  36.                         a = a / b;
  37.                         result += (a + '0');
  38.                         table[mod] = result.size() - 1;. more info on 1point3acres.com
  39.                         a = mod;
  40.                 }

  41.                 else {
  42.                         int index = table[mod];
  43.                         string in_parenthese = result.substr(index); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  44.                         result = result.substr(0, index);
  45.                         if (in_parenthese != "0") {
  46.                                 result += "(";. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  47.                                 result += in_parenthese;
  48.                                 result += ")";
  49.                                 return result;
    .鐣欏璁哄潧-涓浜-涓夊垎鍦
  50.                         }-google 1point3acres
  51.                 }
  52.         }
  53. }

  54. int main() {
  55.         int a, b;
  56.         cin >> a >> b;
  57.         string result = devide(a, b);. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  58.         cout << result << endl;
  59. }
复制代码
回复 支持 反对

使用道具 举报

jdflyfly 发表于 2014-8-3 22:35:42 | 显示全部楼层
感觉目测不是很难,想bug-free还是需要点功力的。
回复 支持 反对

使用道具 举报

kuyen 发表于 2014-9-26 03:53:27 | 显示全部楼层
我也写了第4题, 感觉有点意思....

string divide(int a, int b){
// a is dividend, b is divisor
        unordered_map<int, int> info; // the remainder and its position
        int integer = a/b;
        int rem = a%b;

        // The integer part
        ostringstream ss;
        ss << integer;
        if (!rem) return ss.str();. from: 1point3acres.com/bbs
        ss << ".";
. visit 1point3acres.com for more.
        // Calculating the decimal part
        string temp("");. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        while (rem && info.find(rem) == info.end()){
                info[rem] = temp.size();. from: 1point3acres.com/bbs
                rem *= 10;
                temp += ('0'+rem/b); // add '0' when rem < b, this rem is also recorded
                rem %= b; // doing nothing when rem < b
        }

        // check if need ()
        if (rem){
                temp.insert(temp.begin()+info[rem], '(');
                temp.insert(temp.end(), ')');
        }

        return ss.str()+ temp;
}


int main(){
. more info on 1point3acres.com
// Test cases
string res;
res = divide(10, 3); cout << res << endl;
res = divide(100, 3); cout << res << endl;
res = divide(5, 10); cout << res << endl;
res = divide(1, 7); cout << res << endl;
res = divide(1, 70); cout << res << endl;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
res = divide(1, 17); cout << res << endl;
return 0;
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴}
回复 支持 反对

使用道具 举报

chasedream 发表于 2014-9-28 11:36:11 | 显示全部楼层
请问refer多久后,出的结果去on-site啊?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-7-21 05:03

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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