一亩三分地论坛

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

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

10月5日 Google电面

[复制链接] |试试Instant~ |关注本帖
kevinis 发表于 2015-10-7 10:00:58 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 博士 全职@Google - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
新农报一个狗家面经:
1. Reverse vowels of a string
输入一个字符串,要求交换左右的“vowel”字符,vowel字符是“aeiou”中的任何一个
比如"china" -- > "chani", i和a被交换了

2. Leetcode: Number of islands原题

3. 给一个float数组float[100000][10000]
for(int i = 0; i < 100000; i++) {
    for(int j = 0; j < 100000; j++) {
        f[i][j] *= 7;. from: 1point3acres.com/bbs
}}

for(int j = 0; j < 100000; i++) {
    for(int i = 0; i < 100000; j++) {
        f[i][j] *= 7;
}}.1point3acres缃

哪种方法更好

与大家共勉


本帖被以下淘专辑推荐:

storm_hair 发表于 2015-10-7 12:15:50 | 显示全部楼层
bill701 发表于 2015-10-7 12:02. From 1point 3acres bbs
请问第一题如果单词中存在多个vowel的话是什么交换规则呢

我猜是单词中的元音序列反转比如 opaque --> epuqao
回复 支持 1 反对 0

使用道具 举报

leixiang5 发表于 2015-10-7 10:06:37 | 显示全部楼层
第二几个for loop是不是infinite loop啊?
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-10-7 10:37:35 | 显示全部楼层
第3题第1个好吧?存取会快一些
回复 支持 反对

使用道具 举报

Wizmann 发表于 2015-10-7 11:41:31 | 显示全部楼层
第3题是选第一个.鐣欏璁哄潧-涓浜-涓夊垎鍦

因为Cache更友好一点。(可能还有CPU浮点计算优化什么的,这个就不清楚了)
回复 支持 反对

使用道具 举报

bill701 发表于 2015-10-7 12:02:09 | 显示全部楼层
请问第一题如果单词中存在多个vowel的话是什么交换规则呢
回复 支持 反对

使用道具 举报

say543 发表于 2015-10-7 13:06:54 | 显示全部楼层
第三题方法1好 第一题左右怎么决定的有几个vowels? 能说说吗?
回复 支持 反对

使用道具 举报

Wizmann 发表于 2015-10-7 17:43:18 | 显示全部楼层
bill701 发表于 2015-10-7 12:02
请问第一题如果单词中存在多个vowel的话是什么交换规则呢

如果我没理解错的话,reverse是翻转的意思吧。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

代码:
  1. def reverse_vowel(word):
  2.     word = list(word)
  3.     n = len(word). 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  4.     p, q = 0, n - 1.1point3acres缃
  5.     while p < q:. Waral 鍗氬鏈夋洿澶氭枃绔,
  6.         while p < n and word[p] not in 'aeiou':
  7.             p += 1-google 1point3acres
  8.         while q >= 0 and word[q] not in 'aeiou':
  9.             q -= 1
  10.         if p < q:
  11.             word[p], word[q] = word[q], word[p]
  12.             p += 1
  13.             q -= 1
  14.     return ''.join(word)
复制代码
回复 支持 反对

使用道具 举报

xbb12344 发表于 2015-10-7 18:34:49 | 显示全部楼层
Wizmann 发表于 2015-10-7 11:41
第3题是选第一个

因为Cache更友好一点。(可能还有CPU浮点计算优化什么的,这个就不清楚了)
. from: 1point3acres.com/bbs
Cache确实是更好
回复 支持 反对

使用道具 举报

Wizmann 发表于 2015-10-7 21:07:21 | 显示全部楼层

还有并行化的优势吧。不过这个取决于具体平台了。

感觉他用浮点数,是想要提示这个的吧
回复 支持 反对

使用道具 举报

wenqiang88 发表于 2015-10-7 21:23:56 | 显示全部楼层
第三题,如果row based就是第一个更好,column based的话就是第二个
回复 支持 反对

使用道具 举报

goo 发表于 2015-10-7 21:38:45 | 显示全部楼层

  1. void swapvowel(string &s){
  2. int l=0;r=s.size()-1;
  3. while(l<r){
  4. if(s[r]!=’a’ && s[r]!=’e’ &&s[r]!=’i’&&s[r]!=’o’ &&s[r]!=’u’  ){-google 1point3acres
  5.             r--;
  6.             continue;}
  7. if(s[l]!=’a’ && s[l]!=’e’ &&s[l]!=’i’&&s[l]!=’o’ &&s[l]!=’u’  ){
  8.             l++;
  9.             continue;}
  10. swap(s[r],s[l]);
  11. l++;
  12. r--;

  13. }
  14. return;
  15. }
复制代码
回复 支持 反对

使用道具 举报

pengzewen37 发表于 2015-10-7 21:49:11 | 显示全部楼层
第一题是不是,two pointer,两边,遇到的aeiou的字符后,然后交换。
回复 支持 反对

使用道具 举报

 楼主| kevinis 发表于 2015-10-8 05:47:19 | 显示全部楼层

这段代码如果输入的字符串里没有vowel字母会报越界错误
回复 支持 反对

使用道具 举报

goo 发表于 2015-10-8 10:14:16 | 显示全部楼层
kevinis 发表于 2015-10-8 05:47
这段代码如果输入的字符串里没有vowel字母会报越界错误

不会的 因为 l和r相等时就推出循环了
回复 支持 反对

使用道具 举报

zxy_snow 发表于 2015-10-8 10:27:17 | 显示全部楼层
那个float数组肯定装不下到内存里,所以cache是一方面,另外硬盘去读的话,寻道什么的,也是第一种好点吧
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-3 15:22

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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