google 实习加面面经 12/17/2015

原帖地址:一亩三分地

谷歌实习加面:1道数学题+1道coding题

1、1个4位数可以从中划分成2个2位数,将2位数相加和为100且不含重复数字有多少种情况?
比如 87 + 13 =100 就是一种。
(1)、写出程序,分析需要loop多少次。
(2)、如果只有笔和纸,如何计算有多少种情况。

第一小问 for(int x=10 to 99) y=100-x 。。。就行,这里有优化可以做
第二小问 直接枚举结果,每次找到一组结果都意味着找到另外3组结果, 所以每次count *4 ,比如 13 + 87 -> 17 + 83, 83 + 17, 87 + 13, 不过0打头的时候要注意下, 谁有更好的思路可以分享下哈。

2、2个array string,由words构成,一次一边读取一个char并输出,直到一边读完,求最终输出, 比如
array1={
“ab”,
“cd”
}
array2={
“123”,
“45”
}

输出:a1b2c3d4

定义几个指针一边扫一边判,注意skip empty的word就行。
这次面试不难,不知道能否通过,毕竟大dream。
据说拿到intern offer全职面试直接onsite,不过CMU学生本来就是直接onsite,所以不知有何区别…………

  1. 第一题的100不是可以分解成1+99, 2+98, 3+97。。。。96+4, 97+3, 98+2, 99+1吗。去掉第一位是0的情况, 所以有99-10+1=90种嘛。