x米笔试题

(1)24个人做ABC三道菜,满足如下条件:

  • 每个人至少会做1道
  • 没有人会做3道
  • 只会做A的是只会做C的2倍
  • 只会做C的是既会做A又会做B的3倍
  • 会B的人中,只会做B的比其他人少1
  • 不知一个人既会做A和B
      问会做C的有多少人? 

       解析:A∩B >1, 只会C的是A∩B的3倍,只会A的是只会C的两倍,而且 只会A +只会 C 要 <24 ,所以 只会A是12,只会C是6,A∩B是2,所以得到下图:

所以 A∩C + B∩C + 只会B = 4,要把剩下的4人分配到这三个区域,因为 只会B=A∩B + B∩C -1;所以:

如果只会B = 4 ,则不满足条件;

如果只会B=3,则不满足条件;

如果只会B = 2, 则 B ∩ C = 1,A ∩C = 1,所以会C的人为 6 + 1 + 1 =8

如果 只会B = 1,则 B∩ C = 0, A ∩ C = 3 ,则会C的人为 6 + 0 + 3 =9.

(2)sizeof问题:union 要和 short 即2 对齐,所以是4

 struct node{
       char c[3];
       short s;
   };
  
  union un{
      char c[3];
      short s;
  };
  

 (3)计算完全二叉树叶子节点的数量,忘了倒数第二层 囧。。。

  (4)由前序遍历和中序遍历构造后续遍历

(4)消除字符串的空格,如果有多个空格则保留一个

(5)求线段的覆盖,例如[1,9] 和 [5,10]两条线段 ,则覆盖了 10,求n条线段的覆盖数,

如果多重覆盖,则计算一次

(6)(a+b)*c*(d-e/f) 转换成后缀表达式 :ab+c*def/-* ,注意运算优先级和结合行


总结:我了个叉 ,发现自己做题太粗心了,很多会做的看错题,囧。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值