2015/7/25due Ama OA1

原帖地址:一亩三分地

今儿7/23,OA1 25号due。以下是面经(同一批due的不一定题一样,或者说肯定不一样)

Debug:
1. 降序: 代码里面就一个判断语句,把判断语句里的<改成>。
2. Manchester code:里面就一个判断语句,把判断语句的==改成!=
3. selection sort: 这个要说一下因为面经里关于这题的答案很少。代码就简写了
for(x = 0 ; x < n ;x++)//n是给的list的长度{ for(x = 0 ; x < n ;x++)//n是给的list的长度{ int index_of_min = x; int index_of_min = x; for(y = x ; y < n ; y++){ for(y = x ; y < n ; y++){ if(arr[index_of_min] > arr[x]){//这里错了 >>>>>>>正确答案应该是 if(arr[index_of_min] <= arr[x]){// '>‘变为‘<=’ y = index_of_min; y = index_of_min; } int temp = arr[x];//把元素交换语句放到if中 int temp = arr[x];//这三句代码是要调换元素位置,但是代码应放在if中 arr[x] = arr[index_of_min]; arr[x] = arr[index_of_min]; arr[index_of_min] = temp; arr[index_of_min] = temp; } } } } } 4.一个数num,num是奇数,输出从1开始的num个奇数,num是偶数,输出num个从0开始的偶数: 题中有两个for循环(奇数情况一个for循环,偶数情况一个for循环),这俩循环没加{} debug部分就这些要说的,其他的更简单。我就不列举了,地里有。 Reasoning: 1.QDXM:SFUN::UIOZ:?==》WKPA 2. AIE: FNJ::KSO:? ==> PXT
3. PSRQ, MNPO, SVUT, KNML ==> MUPO
4. LKJI, XYWV,WVUT,KJIH ==> XYWV
5. JOHN:LSNV::MARK:?==>OEXS
6. ASS ERT IVE NES S: SEN SSA EVI S TRE::MUL TIN ATI ONA L:? ==>ANO LUM ITA L NIT //三个字母为一组,最后多出来一个字母,所以一个单词里有5组,三个字母一组的(4个)组内字母倒序,同时这五组也相互调换顺序,具体调换规则请自行总结
7.AG6,BI7,FA5,HC2,==>HC2
8.10,74,202,394,?==>650
reasoning的GRE阅读部分:
9.题的大概:M1-M5,M1和M3不共存,M4和W2不共存。。。。。考了4个题,时间不够了,瞎选的
10. 公司生产商品:必须有ECC;不少于三种商品;没有synthetic XX(单词不会)==>不是又XX合成的;….其他一堆条件。。。。。考了两个题
11.向东南西北走。。。。。考了两个题,地里没有但是很简单,大家不用看(这个并不是GRE阅读)
12. 生日在那个月:生日在2月和10之间;生日在3月和8月之间。问用这两个条件能不能判断生日那个月==》然而两个条件加起来也并不能判断生日月份
13. 候选人:有本科毕业且平均成绩B; MBA毕业且成绩B;70%in 12th grade….题目稍有变化所以地里没有原题,但是还是那道候选人问题,只不过改了一些条件。。。。。考了两个题
其他的我给忘了…..

CODE:首先声明题库
1. reverse second half of linked list(是single linked list,不是list)
2. 给两个binary tree,问一个是不是另一个的子树,tree的节点是这么声明的
class TNode{
char value;
TNode left;
TNode right;
}
从这个class声明可以看出,虽然是binary tree,但是本质上是double linked list(双向链表)
3. balanced parentheses,三种brackets:”(),{},[]”. 输入一个字符串或是数组,问parentheses是否是balanced。

三道题JAVA代码总结如附件。

本人在reasoning的M1-M5,W1-M3这道题跪了,没时间打完。加上其他的题,大概24个题错了5个或6个,希望打击不嘲笑。Code是我自己写的,不保证能通过所有case。我做的是reverse second half of linked list,这个我确保正确。 Subtree给了两种答案,1种是中序和前序遍历,如果T2是T1的子树,则T2的遍历结果(遍历结果是一个字符串)一定是T1遍历结果的子串。另一种答案检查node是否相同,具体解决方法看代码,思路简单这里不赘述。 Balanced parentheses也是两种方法:stack和list。推荐用stack,不是必须用stack,只是我的推荐而已,因为stack提供pop方法。用list也能做,代码写在同一个class文件里。

另外我想问一下:
1. 我的OA_1肯定是做的比较差的,reasoning这部分真的没时间做完,楼主比较笨。这种情况下我还有希望通过OA这轮测试吗
2. OA_2是在OA_1过了的情况下才能拿到吗?还是有OA_1就有OA_2?
3. 多长时间之后能有个结果:通知我没过,或者给我OA_2?
4. 题外话: 大家刷题都刷什么?leetcode吗,还是什么?
5. 我是今年年末毕业,现在就得找工作。那么现在再申请其他大公司还来得及吗?或者如果我没过amazon的OA,八月份换个邮箱再申请amazon一次,能来得及吗(都是申请明年一月份开始的full time)