一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 3597|回复: 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啦。一共面试了五轮.
第一个轮是给一个字符串,比如{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,再解压缩,原来的字符串里可能也有数字和*



评分

4

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

taconite 发表于 2014-5-22 13:52:18 | 显示全部楼层
关注一亩三分地微博:
Warald
第二题大概是最后一行有四个空格吧
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
  4. */

  5. #include <iostream>
  6. #include <unordered_map>
  7. using namespace std;.1point3acres缃

  8. string devide(int a, int b) {
  9.         //assert(b != 0);.鏈枃鍘熷垱鑷1point3acres璁哄潧
  10.         string result = "";-google 1point3acres

  11.         if (a >= b && a % b == 0)
  12.                 return std::to_string(a/b);

  13.         else if (a > b) {
  14.                 result += (a / b) + '0';
  15.                 result += '.';
  16.                 a = a % b;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  17.         }

  18.         else { // a < b
  19.                 result += "0.";
  20.         }

  21.         unordered_map<int, int> table;

  22.         while (true) {
  23.                 a = a * 10;
  24.                 while (a < b) {
  25.                         a *= 10;
  26.                         result += "0";
  27.                 }
  28.                 int mod = a % b;. visit 1point3acres.com for more.
  29.                 if (mod == 0) {
  30.                         result += std::to_string(a / b);
  31.                         return result;
  32.                 }

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

  39.                 else {
  40.                         int index = table[mod];
  41.                         string in_parenthese = result.substr(index);
  42.                         result = result.substr(0, index);.鐣欏璁哄潧-涓浜-涓夊垎鍦
  43.                         if (in_parenthese != "0") {
  44.                                 result += "(";
  45.                                 result += in_parenthese;
  46.                                 result += ")";. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  47.                                 return result;
  48.                         }. 1point 3acres 璁哄潧
  49.                 }
  50.         }
  51. }

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

使用道具 举报

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;. 1point3acres.com/bbs
        int rem = a%b;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

        // The integer part 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        ostringstream ss;
        ss << integer;
        if (!rem) return ss.str();
        ss << ".";

        // Calculating the decimal part
        string temp("");
        while (rem && info.find(rem) == info.end()){
                info[rem] = temp.size();
                rem *= 10;. 1point 3acres 璁哄潧
                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;
}. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
.鐣欏璁哄潧-涓浜-涓夊垎鍦
. 1point3acres.com/bbs
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;.1point3acres缃
res = divide(1, 7); cout << res << endl;. Waral 鍗氬鏈夋洿澶氭枃绔,
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, 2017-3-26 09:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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