G 家电面题目, 欢迎讨论!# JobHunting - 待字闺中
m*l
1 楼
昨天下午首次和G家进行电面,因为目前有工作, 所以心态还比较好,就是包着试一试
的态度挑战一下自己。整个过程如下:
1. 一白哥哥自报姓名,上来先问为什么选择谷歌?然后问了问简历上做过的一些项目
的细节(我还蛮奇怪的,因为听说G家都是上来就编程了啊)
2. 然后就开始问面向对象设计和设计模问题,比如如何设计 java io package,可以用
什么模式等
3. 由2引申, 问bridge pattern 和strategy pattern的区别 (一个是可以动态swap
implementation,一个只能静态)
3. 编程问题:给一个由1, 0 和 ?组成的字符串,返回所有的matching strings, “
?” 可以 match 0 and 1, 比如说:
input : 1??
output: {100, 101, 110, 111}.
input: 100100?00?
output: {1001000000,1001000001,1001001000,1001001001}
关于这个,我用了递归函数,递归call 输入字符串的 substring(1, n),但是发现空
间复杂度太大了, 因为每次递归函数返回以后, 我都重新建立新的set, 把递归返回
的 set中每一个字符串,append 1 or 0, or both(in case of ?), 然后加到新的 set
里面。。
应该算是简单的题目了,感觉还是没有发挥好。。。大牛门有什么更好的方法, 欢饮
讨论:)
的态度挑战一下自己。整个过程如下:
1. 一白哥哥自报姓名,上来先问为什么选择谷歌?然后问了问简历上做过的一些项目
的细节(我还蛮奇怪的,因为听说G家都是上来就编程了啊)
2. 然后就开始问面向对象设计和设计模问题,比如如何设计 java io package,可以用
什么模式等
3. 由2引申, 问bridge pattern 和strategy pattern的区别 (一个是可以动态swap
implementation,一个只能静态)
3. 编程问题:给一个由1, 0 和 ?组成的字符串,返回所有的matching strings, “
?” 可以 match 0 and 1, 比如说:
input : 1??
output: {100, 101, 110, 111}.
input: 100100?00?
output: {1001000000,1001000001,1001001000,1001001001}
关于这个,我用了递归函数,递归call 输入字符串的 substring(1, n),但是发现空
间复杂度太大了, 因为每次递归函数返回以后, 我都重新建立新的set, 把递归返回
的 set中每一个字符串,append 1 or 0, or both(in case of ?), 然后加到新的 set
里面。。
应该算是简单的题目了,感觉还是没有发挥好。。。大牛门有什么更好的方法, 欢饮
讨论:)