前言

华为今天实习开始加了笔试,原本4.1接到笔试,因为没有机器就没接,现在改为4.15参加笔试,笔试分为三道题,分值分别是:100分, 200分, 300分。时间为2个小时,每周三的19:00 —— 21:00。两个小时做完两道题的也是大佬。渣渣我一般都是一道题,但是今年华为的这题和牛客上的完全不一样,oc好艰难,后两题没有写出来,贴上大佬的代码。

第一题

做一个投票机制,评选规则:
(1)票数最多者当选
(2)票数相同时,按照员工姓名排序,首字母越小越排前,a>b>c; A>B>C 如果姓名之间有包含关系,短名字排在长名字的前面:Tom>Tomy

输入描述:

输入为投票清单,用字符串表示,投票姓名之间用英文逗号隔开,中间不含有空格,例如:Tom,Lily,Jack,Lucy

输入要求:

(1) 员工名字只包含大小写字母,首字母大写,其他字母小些。
(2)总票数n:1<n<100

示例1
输入:

Tom,Lily,Tom,Lucy,Lucy,Jack

输出:

Lucy

说明:

Tom和Lucy投票相同,Lucy排序优于Tom

示例2
输入:

Tom,Lily,Tom,Lucy,Lucy,Tom,Jack

输出:

Tom

说明:

Tom得票数最多

code:
import sysdef fun():names = sys.stdin.readline().strip().split(",")m = {}def checkName(name):first = name[0]last = name[1:]if ord('A') > ord(first) or ord('Z') < ord(first):return Falsefor each in last:if ord('a') > ord(each) or ord('z') < ord(each):return Falsereturn Truefor each in names:if not checkName(each):print("error.0001")returnif each not in m.keys():m[each] = 1else:m[each] += 1star = []max_ticket = 0for k in m.keys():if m[k] > max_ticket:max_ticket = m[k]for k in m.keys():if m[k] == max_ticket: star.append(k)star.sort()print(star[0])if __name__ == '__main__':fun()

第二题

字符串处理,当时看了只有思路,看了大佬的代码,明白了。。。

输入描述:

匹配关键字,带匹配的字符串
其中两个字符串之间通过一个空格区分

输出描述:

将每一个匹配到的条目寄存器值,按照addr mask val的值先后顺序,通过空格区分输出,要包含0x或者0X且与输入保持一致。
每一个匹配的项目单独一行,换行为\r\n,最后一项也增加换行。如果匹配失败,输出fail

示例1
输入

read read[ addr=0x17,mask=0xff,val=ox7], read_his[addr=0xff,mask=0xff,val=0x1],read[addr=0xf0,mask=0xff,val=0x80]

输出:

0x17 0xff 0x7
0xf0 0xff 0x80

code:
import sysdef fun():key_word, words = sys.stdin.readline().strip().split(" ")res = []words = words.split("],")words[-1] = words[-1][:-1]for each in words:index = each.find('[')key = each[:index]each = each[index + 1:]if key == key_word:addr, mask, val = each.split(",")addr_info = addr[5:]mask_info = mask[5:]val_info = val[4:]try:_ = int(addr_info, base=16)_ = int(mask_info, base=16)_ = int(val_info, base=16)res.append([addr_info, mask_info, val_info])except ValueError:continueif len(res) == 0:print("FAIL")for each in res:print(" ".join(each))if __name__ == '__main__':fun()

第三题

第三题是多叉树的最大路径和,用的回溯法,赶时间,就懒得优化了。最重要的一个测试用例是在没有入口函数的时候输出R,否则只能过80%
(这个题我都没时间做)

code:

import sysdef fun():def getPathSum(path):size = 0for each in path:size += func_info[each][0]return sizedef backtrace(path, choice):if len(choice) == 0:return getPathSum(path)size = 0for each in choice:if each in path:print('R')sys.exit()if each not in func_info.keys():print('NA')sys.exit()path.append(each)res = backtrace(path, func_info[each][1])size = max(size, res)path.pop(-1)return sizefirst = sys.stdin.readline().strip().split(" ")first = [int(each) for each in first]n = first[0]func_info = {}for i in range(n):# build func infotemp_func = sys.stdin.readline().strip().split(" ")func_num = int(temp_func[0])func_stack = int(temp_func[1])func_insert = [int(each) for each in temp_func[2:]]func_info[func_num] = [func_stack, func_insert]for each in func_info.keys():if each in func_info[each][1]:print('R')sys.exit()# 得到所有的入口函数entrys = []for each1 in func_info.keys():flag = Truefor each2 in func_info.keys():if each1 in func_info[each2][1]:flag = Falsebreakif flag:entrys.append(each1)if len(entrys) == 0:print("R")sys.exit()maxSize = 0for each in entrys:path = [each]stackSize = backtrace(path, func_info[each][1])maxSize = max(stackSize, maxSize)print(maxSize)if __name__ == '__main__':fun()

还是要好好刷leecode,牛客上的华为108题太没有代表性了。。
参考:
【1】https://www.nowcoder.com/discuss/409163?type=2

华为海思实习生4.15机试相关推荐

  1. 2020华为海思实习生面试记录

    来自微信公众号:数字芯片联合实验室 2020年4月12日,投简历.我投的是华为海思的数字芯片岗位.首先先是从简历上,你的简历上一定要写清楚自己从大学开始到现在的学习经历,项目经历,自己的知识储备,自己 ...

  2. 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)

    07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/5 17:26 https://blog.csdn.net/cocoron/articl ...

  3. 08-20210305在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)

    08-20210301在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/5 11:03 https://bbs.elecfans.com/jishu_2002000 ...

  4. 在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统)

    08-20210301在WIN10下通过网口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/5 11:03 https://bbs.elecfans.com/jishu_2002000 ...

  5. 05-20210301在WIN10下通过串口给华为海思Hi3516DV300刷机(鸿蒙系统)

    05-20210301在WIN10下通过串口给华为海思Hi3516DV300刷机(鸿蒙系统) 2021/3/1 15:11 (!!!!请严重注意,串口烧录需要花很久很久的时间:2小时6分41秒.) h ...

  6. 05-20210222在WIN10下通过串口给华为海思Hi3518EV300刷机(鸿蒙系统)

    05-20210222在WIN10下通过串口给华为海思Hi3518EV300刷机(鸿蒙系统) 2021/2/23 17:38 1.串口刷机工具下载:HiTool-HM-5.4.9-win32-x86_ ...

  7. 魔百盒CM201-2_YS、ZG、CH、(emmc,nand)_海思3798mv300_全套刷机固件

    魔百盒CM201-2_YS.ZG.CH.(emmc,nand)_海思3798mv300_全套刷机固件 YS易视腾代工.ZG朝哥代工.CH长虹代工 固件说明: 本固件为移动魔百和CM201-2运营商盒子 ...

  8. 魔百盒M301H(ZN、JL、CW、SM代工)_海思3798mv300_全套刷机固件

    魔百盒M301H(ZN.JL.CW.SM代工)_海思3798mv300_全套刷机固件 ZN:兆能.JL九联.CW创维.SM数码 固件说明: 本固件为移动魔百和M301h运营商盒子主控芯片为海思3798 ...

  9. 06-20210224华为海思Hi3518EV300鸿蒙系统的uboot编译

    06-20210224华为海思Hi3518EV300鸿蒙系统的uboot编译 2021/2/24 15:51 https://blog.csdn.net/qq_31765191/article/det ...

最新文章

  1. 使用pxe来实现无人值守linux
  2. pytorch Spawning 子线程
  3. Hibernate中基本概念
  4. 对JavaScript内置对象arguments的一些见解
  5. PostgreSQL 10.1 手册_部分 I. 教程_第 2 章 SQL语言
  6. firefox 开源_Firefox 10岁了,Microsoft开源了更多,等等
  7. error page怎么解决_Firefox 登录feedly时出现PR_CONNECT_RESET_ERROR的解决方案
  8. PHP扩展迁移为PHP7扩展兼容性问题记录
  9. 数字化赋能全零售 国美按下战略加速键
  10. Python用socket、多线程实现一对一聊天室
  11. openwrt新3路由lede动态dns如何使用,阿里云ddns+ipv6
  12. vue和 element ui下载到本地后引入
  13. ..\target\m2e-wtp\web-resources\META-INF\MANIFEST.MF (系统找不到指定的路径)解决办法
  14. python中def main是什么意思_浅析Python中的main函数
  15. android textview截断,Android Textview文字在底部被截断
  16. 与微信公众平台的商榷
  17. 计算机网络统考outlook操作视频,网络教育计算机统考Outlook
  18. kafka listeners 和 advertised.listeners 的区别及应用
  19. uni-app 开发微信小程序 自动化编译,启动项目
  20. ORA-27072、ORA-27072错误解析

热门文章

  1. Virtual安装Ubuntu后更改分辨率
  2. 如何做好banner设计(banner设计要点包括哪些)
  3. 不稳定版的python俄罗斯方块
  4. JAVA子类继承多个_Java的一个子类可以继承自多个父类。
  5. java使用poi操作word实现电子签章
  6. ME-20(遗珠?)
  7. win10取消开机密码、睡眠唤醒密码
  8. 台湾李宏毅2020深度学习 第一课 学习导论
  9. 行稳致远!大数据基础设施“领航者”爱数的数智化进阶
  10. 泛微协同项目管理解决方案(转)