一道嚼烂的面试题

这到面试题已经碰到过N次,碰到第一次之后就开始机械的背诵答案。今天用编程方法解决。

如果大家有什么独特解决问题的方法 欢迎一起学习和探讨

某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1) 密码单词的最小长度是两个字母,可以相同,也可以不同

(2) K不可能是单词的第一个字母

(3) 如果L出现,则出现次数不止一次

(4) M不能使最后一个也不能是倒数第二个字母

(5) K出现,则N就一定出现

(6) O如果是最后一个字母,则L一定出现

问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
A) K   B)L   C) M    D) N

问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
A)1个 B)3个 C)6个 D)9个

问题三:下列哪一个是单词密码?

A) KLLN  B)   LOML   C) MLLO   D)NMKO

你可能很快的就能知道这些答案。1.B   2.A  3.C


如果用程序如何解决
上面的六条规则用正则表达式再好不过了
总结下来放到一个数组中如下

 

 

 

我尝试去解决第一道题目

 

最后的结果为:
LOL

第二道题

结果为 1 只有一个满足条件LL

第三道题目

结果为  MLLO

 

 

posted @ 2013-06-02 15:45  海叔  阅读(304)  评论(0编辑  收藏  举报