一亩三分地论坛

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

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

Google Onsite Interview(帮同学发的)

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

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

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

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

x
Pittsburgh Offcie Onsite interview. CMU的同学找人refer后,可以直接去google onsite interview 不需要经过任何phone interview,面上之后,也可以去Mount View或者其他office, 貌似留在pittsburgh office或者 Mount View的概率大些,不过大部分人都去Mount View啦。一共面试了五轮.. Waral 鍗氬鏈夋洿澶氭枃绔,
第一个轮是给一个字符串,比如{a,b}xy{c,d,e},返回所有的combination,也就是axyc, axyd, axye, bxyc, bxyd, bxye
. 1point3acres.com/bbs
第二个是有一个5*6的方格子,上面有26个字母和4个空格,给你两个字母,找到一个到另一个的路径

第三轮是给一个文本,输出其中所有的bi-gram的次数。比如a b c b c就是“a b”1次,"b c"2次,“c b”1次。
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
第四轮是给分子和分母,用string表示除法后的结果,无限循环小数部分用括号括起来。比如1/11就是0.(09)


第五轮是给一个BST,可以有duplicate values,找出出现次数最多的value,还问了一个把aabbbcc压缩成a*2b*3c*2,再解压缩,原来的字符串里可能也有数字和*
.1point3acres缃


评分

4

查看全部评分

本帖被以下淘专辑推荐:

shire1989 发表于 2014-5-10 01:01:11 | 显示全部楼层
有一个5*6的方格子,上面有26个字母和4个空格,给你两个字母,找到一个到另一个的路径
这个什么意思,就是空格不可以走是吗?
回复 支持 反对

使用道具 举报

taconite 发表于 2014-5-22 13:52:18 | 显示全部楼层
第二题大概是最后一行有四个空格吧
ABCDE
FGHIJ
KLMNO
PQRST
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-google 1point3acres
  4. */
  5. . 鍥磋鎴戜滑@1point 3 acres
  6. #include <iostream>. from: 1point3acres.com/bbs
  7. #include <unordered_map>
  8. using namespace std;

  9. string devide(int a, int b) {
  10.         //assert(b != 0);
  11.         string result = "";. From 1point 3acres bbs

  12.         if (a >= b && a % b == 0)
  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.";
  21.         }

  22.         unordered_map<int, int> table;

  23.         while (true) {
  24.                 a = a * 10;
  25.                 while (a < b) {. From 1point 3acres bbs
  26.                         a *= 10;
  27.                         result += "0";
  28.                 }
  29.                 int mod = a % b;
  30.                 if (mod == 0) {
  31.                         result += std::to_string(a / b);
  32.                         return result;
  33.                 }. from: 1point3acres.com/bbs

  34.                 if (table.find(mod) == table.end()) {
  35.                         a = a / b;
  36.                         result += (a + '0');. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  37.                         table[mod] = result.size() - 1;
  38.                         a = mod;
  39.                 }

  40.                 else {. 鍥磋鎴戜滑@1point 3 acres
  41.                         int index = table[mod];
  42.                         string in_parenthese = result.substr(index);. visit 1point3acres.com for more.
  43.                         result = result.substr(0, index);
  44.                         if (in_parenthese != "0") {
  45.                                 result += "(";. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  46.                                 result += in_parenthese;
  47.                                 result += ")";
  48.                                 return result;
  49.                         }
  50.                 }
  51.         }
  52. }. 1point 3acres 璁哄潧

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

使用道具 举报

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();
        ss << ".";
. From 1point 3acres bbs
        // Calculating the decimal part
        string temp("");. more info on 1point3acres.com
        while (rem && info.find(rem) == info.end()){
                info[rem] = temp.size();.鐣欏璁哄潧-涓浜-涓夊垎鍦
                rem *= 10;
                temp += ('0'+rem/b); // add '0' when rem < b, this rem is also recorded
                rem %= b; // doing nothing when rem < b
        }
.1point3acres缃
        // check if need ()
        if (rem){
                temp.insert(temp.begin()+info[rem], '(');
                temp.insert(temp.end(), ')');
        }

        return ss.str()+ temp;
}
. 鍥磋鎴戜滑@1point 3 acres
. more info on 1point3acres.com
int main(){. 鍥磋鎴戜滑@1point 3 acres

// 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啊?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-8 22:19

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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