May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 4140|回复: 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个空格,给你两个字母,找到一个到另一个的路径

第三轮是给一个文本,输出其中所有的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,再解压缩,原来的字符串里可能也有数字和*
. from: 1point3acres.com/bbs


评分

4

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

taconite 发表于 2014-5-22 13:52:18 | 显示全部楼层
关注一亩三分地微博:
Warald
第二题大概是最后一行有四个空格吧
ABCDE
FGHIJ
KLMNO.1point3acres缃
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
  4. */
  5. .1point3acres缃
  6. #include <iostream>
  7. #include <unordered_map>
  8. using namespace std;
  9. . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  10. string devide(int a, int b) {
  11.         //assert(b != 0);
  12.         string result = "";

  13.         if (a >= b && a % b == 0). From 1point 3acres bbs
  14.                 return std::to_string(a/b);

  15.         else if (a > b) {
  16.                 result += (a / b) + '0';
  17.                 result += '.';-google 1point3acres
  18.                 a = a % b;
  19.         }

  20.         else { // a < b
  21.                 result += "0.";
  22.         }
  23. .鐣欏璁哄潧-涓浜-涓夊垎鍦
  24.         unordered_map<int, int> table;

  25.         while (true) {
  26.                 a = a * 10;
  27.                 while (a < b) {
  28.                         a *= 10;
  29.                         result += "0";
    . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  30.                 }. 1point3acres.com/bbs
  31.                 int mod = a % b;
  32.                 if (mod == 0) {
  33.                         result += std::to_string(a / b);
  34.                         return result;
  35.                 }
  36. . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  37.                 if (table.find(mod) == table.end()) {
  38.                         a = a / b;
  39.                         result += (a + '0');. 鍥磋鎴戜滑@1point 3 acres
  40.                         table[mod] = result.size() - 1;
  41.                         a = mod;
  42.                 }

  43.                 else {
  44.                         int index = table[mod];
  45.                         string in_parenthese = result.substr(index);
  46.                         result = result.substr(0, index);
  47.                         if (in_parenthese != "0") {. From 1point 3acres bbs
  48.                                 result += "(";
  49.                                 result += in_parenthese;. 鍥磋鎴戜滑@1point 3 acres
  50.                                 result += ")";
  51.                                 return result;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  52.                         }
  53.                 }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  54.         }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  55. }
  56. .鏈枃鍘熷垱鑷1point3acres璁哄潧
  57. int main() {. 1point3acres.com/bbs
  58.         int a, b;
  59.         cin >> a >> b;
  60.         string result = devide(a, b);
  61.         cout << result << endl;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  62. }
复制代码
回复 支持 反对

使用道具 举报

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 << ".";. 鍥磋鎴戜滑@1point 3 acres

        // Calculating the decimal part
        string temp("");. visit 1point3acres.com for more.
        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
        }

        // check if need ()
        if (rem){
                temp.insert(temp.begin()+info[rem], '(');
                temp.insert(temp.end(), ')');
        }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

        return ss.str()+ temp;
}

. 鍥磋鎴戜滑@1point 3 acres
int main(){.1point3acres缃

// 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;. From 1point 3acres bbs
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 下一条

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

custom counter

GMT+8, 2017-5-29 21:47

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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