一亩三分地论坛

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

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

google 第二轮电面

[复制链接] |试试Instant~ |关注本帖
crystal285 发表于 2015-3-13 11:36:48 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类 硕士 全职@Google - 网上海投 - 技术电面 |Other

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

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

x
昨天结束google第二轮电面,是来自纽约的小哥面试官。
面试问了一道题,首先给定一个encode method 把一个String数组整合成一个single string输出,然后让你写decode method,把这个single string再还原成原来的String数组输出。
我一开始的思路是在不同的string之间加mark,然后decode的时候遇到mark即可分割string。但是小哥好像不满意这个算法,他问我知不知道操作系统里面的文件系统怎么管理的。我说有一个Index指示文件的位置,然后他让我按照这个思路写了decode 函数。之后又修改了代码的几个小地方。面试结束。.1point3acres缃
整体感觉怎么说,小哥对代码扣得挺细的,经常问我能不能再减少变量,减少空间。
refurbish 发表于 2015-3-13 11:43:48 | 显示全部楼层
这个题最近频率很高呀。
回复 支持 反对

使用道具 举报

timtam85 发表于 2015-3-13 12:50:04 | 显示全部楼层
楼主用了个额外的array存每个string的长度?之前看了一个帖子说不能用额外的空间,所以方法应该是只能是“string长度+delimiter+string本身”了
回复 支持 反对

使用道具 举报

 楼主| crystal285 发表于 2015-3-13 13:05:28 | 显示全部楼层
timtam85 发表于 2015-3-13 12:50
楼主用了个额外的array存每个string的长度?之前看了一个帖子说不能用额外的空间,所以方法应该是只能是“s ...

. from: 1point3acres.com/bbs 对的,你只能把原函数输出的single string里面加上string size信息,然后decode的时候再根据size取string,就是变成“size+string+size+string+...”的形式。
回复 支持 反对

使用道具 举报

woshiee123 发表于 2015-3-13 22:45:38 | 显示全部楼层
crystal285 发表于 2015-3-13 13:05. From 1point 3acres bbs
对的,你只能把原函数输出的single string里面加上string size信息,然后decode的时候再根据size取string ...

那这个size的信息是存在哪里的  也是存在合并后的single string么?
回复 支持 反对

使用道具 举报

 楼主| crystal285 发表于 2015-3-13 23:13:26 来自手机 | 显示全部楼层
woshiee123 发表于 2015-3-13 22:45
那这个size的信息是存在哪里的  也是存在合并后的single string么?

是的,因为第二个函数输入只能是single string
回复 支持 反对

使用道具 举报

YY大帝 发表于 2015-3-13 23:35:07 | 显示全部楼层
但如果Size是两位数的话会不会发生混淆啊
回复 支持 反对

使用道具 举报

 楼主| crystal285 发表于 2015-3-13 23:47:25 来自手机 | 显示全部楼层
YY大帝 发表于 2015-3-13 23:35.鏈枃鍘熷垱鑷1point3acres璁哄潧
但如果Size是两位数的话会不会发生混淆啊

也是,当时也没考虑到,我觉得size后面还是跟一个mark作为标记吧
回复 支持 反对

使用道具 举报

yourway 发表于 2015-3-14 00:53:39 | 显示全部楼层
crystal285 发表于 2015-3-13 10:47
也是,当时也没考虑到,我觉得size后面还是跟一个mark作为标记吧

可是让 size 的长度固定吧。例如假设单个字符串的最大长度是9999,那么size的长度就是4个字节。不足四个字节的情况下前端补 0 或者空格。这样就可以啦。
回复 支持 反对

使用道具 举报

 楼主| crystal285 发表于 2015-3-14 01:00:44 来自手机 | 显示全部楼层
yourway 发表于 2015-3-14 00:53
可是让 size 的长度固定吧。例如假设单个字符串的最大长度是9999,那么size的长度就是4个字节。不足四个 ...

对哦,这么一说我倒想起来他好像提了一句如果size太大会不会太浪费空间......然后我说是,他就说嗯没事儿继续......
回复 支持 反对

使用道具 举报

timtam85 发表于 2015-3-14 07:02:08 | 显示全部楼层
crystal285 发表于 2015-3-13 13:05
对的,你只能把原函数输出的single string里面加上string size信息,然后decode的时候再根据size取string ...

但如果输入是“0A0A”, encode完不就成“20A20A”了,没办法decode了吧?我的想法是加一个delimiter,encode完变成“2@0A2@0A”
回复 支持 反对

使用道具 举报

mattsun 发表于 2015-3-15 08:14:26 | 显示全部楼层
encode method是你自己实现的?如果是给定为什么encode方式还能不一样呢?
回复 支持 反对

使用道具 举报

 楼主| crystal285 发表于 2015-3-15 10:23:38 来自手机 | 显示全部楼层
mattsun 发表于 2015-3-15 08:14.鏈枃鍘熷垱鑷1point3acres璁哄潧
encode method是你自己实现的?如果是给定为什么encode方式还能不一样呢?

只需要写decode函数,根据你定义的encode函数来写
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

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

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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