华为笔试题

1,914 阅读3分钟

前提准备

(1)时长150分钟,建议提前把考试环境布置好,以免太冷或太热。

(2)准备一个有电的手机,或一直充电也行,因为考试的时候需要扫描一个二维码,进入到一个专用页面,并且要保持屏幕常亮。

(3)提前调试好ide,因为笔试过程中是可以使用本地ide进行调试的。

(4)先去百度搜索牛客网处理输入输出流。或者等hr发了笔试链接后,进入笔试网址开始答题前,也会提示你先去练习输入输出,同时会给你一个链接地址,进去练习即可。

注意事项

(1)总共三道编程题,两道一星题(100分),一道二星题(200分)。

(2)可以先预览题目,然后选择一星题或者二星题进行答题,一旦选择题型后,必须提交完本题型才可进入下一题型。

(3)代码写完后,可以点击右上角自测按钮,先把给的几个测试用例都通过后,然后点击左下方的“保存与提交”按钮,查看通过率。

(4)建议一星题不要超过50分钟,通过率达到85%左右即可。

(5)满分是400分,160及格。

(6)一般会按通过率给分,比如一星题通过85%,大概就会给85分左右。不过以防万一,还是尽量高一点。

开始答题

(1) 最大花费金额

  • 在一堆商品中买三个,使商品总额最接近持有金额,但不能超过。如果持有金额不够买三个商品,返回-1
  • 输入描述:
    • 第一行输入n个商品价格,用空格隔开
    • 第二行输入一个金额t
  • 输出描述:最接近持有金额的商品总额或-1
0 < n <=1000
0 < t <= 1000

例一:

  • 输入:
    • 23 33 22 18
    • 65
  • 输出:63
  • 解释:可以购买 23 + 22 + 18 = 63

例二:

  • 输入:
    • 23 33 22 18
    • 62
  • 输出:-1
  • 解释:持有金额不够买三个商品。

(2) 斗地主求顺子

  • 给定13张扑克牌(不包括大小王),牌面大小为3<4<5<6<7<8<9<10<J<Q<K<A<2(2不能组成顺子)。输出最多的顺子。如果不能组成一个顺子,则输出-1
  • 输入描述:输入13张扑克,用空格隔开
  • 输出描述:输出顺子。并尽可能使顺子数量最多。
  • 例一:
    • 输入:5 4 6 8 Q A 2 3 7 J 10 9 2
    • 输出:
      • 3 4 5 6 7
      • 8 9 10 J Q

(3) 最长完全连续方波

  • 给定一串由0和1组成的方波信号,每个方波之间由0个或多个低位(0)隔开。求最长的完全连续方波。如果不存在,则输出-1。

  • 完全连续方波必须满足如下条件:

    • (1) 首位和末位都是0
    • (2) 整个方波都是01交替的
  • 输入描述:一串由0和1组成的字符串,代表整个方波信号

  • 输出描述:最长完全连续方波。 例一:

  • 输入:000101011001010010

  • 输出:01010

  • 解释:

    • 分为以下几个方波:
    • (1) 00
    • (2) 01010110 由于有两个连续高位,不是
    • (3) 01010 符合完全连续方波定义
    • (4) 010