今天给大家的是一道阿里巴巴的面试题:
话不多少看题目:

    A、B、C、D四人应聘一个程序员职位,此职务的要求条件是:Java熟练;懂数据库开发;会web开发;有C++经验。谁满足的条件最多,谁就被雇用。 

把上面四个要求条件两两组合,每个组合都恰有一人满足。同时已知
A和B Java熟练
B和C会web
C和D懂数据库
D有C++经验
那么,被雇用的是( )
A: A
B: B
C: C
D: D
E:四人机会均等
F:以上均错

课题解析

我们通过题目得知①:
A:java熟练
B:java熟练而且会web
C:会web而且懂数据库
D:懂数据库而且有C++经验

上面四个要求条件两两组合,每个组合都恰有一人满足。这句话是问题的突破口。

什么意思呢?举个栗子,我们说到既会java又会web的那就锁定了B,既会web又会数据库的那就锁定了C,目前A除了Java还会什么未知。

根据①我们知道
会java的和会web的锁定B,但是A也会java,但是根据题目要求,我们知道A不符合这个要求,得出②A不会Web,同理我们得出B不懂数据库,C不会C++,D不会Web。
那么会Web和有C++经验的呢?根据我们得出的结论②可以推算出,这个人是B因为AD不会web,C不会C++,现在我们知道③B:java熟练,会Web,会C++,且不懂数据库。
然后会C++,和Java的呢?我们根据③得出,还是B,这不是关键,关键是我们知道了,A不会C++,D不会Java。(D只会C++和数据库)

然后会数据库和Java的呢?因为B不会数据库,D不会Java,所以结论应该A和C中得出,不急我们接着看,会Web和Java的呢?满足条件的还是B,那么也就是说,C不会Java(C只会Web和数据库)

ok,到这里不用再分析了,B会的最多,Congratulations,u get the offer。

欢迎关注我们的微信公众号In客笔记,学习更多算法,数据结构,Linux,Python知识。
图片描述

本文固定链接: http://www.js-code.com/cpp/cpp_60962.html