点击上方"互联网求职达人",选择"设为置顶or星标"
第一时间获取最实用的求职以及备考信息
华为机考笔试范围是什么?https://mp.weixin.qq.com/s?__biz=MzU2NjE0NjMxNg==&mid=2247483962&idx=1&sn=69b0b152dd8e7ebe9ddb356b1538f51d&chksm=fcb1a659cbc62f4f6fbbae7d7fa9a55c324e1967c7d2bc0ffc0437b5be7df4a0cc4a682f11c7&token=1281231111&lang=zh_CN#rd
✦
1、关于机试注意事项,必看
1.1 【机考时长2.5小时,3道题】
考试时长是150分钟,考题一共三道,分值是100 100 200,通过多少用例,就得多少分。三道题累计得分, 150分就算通过,但分数越高,对你的定级越有帮助。提交时点击 "保存并调试",就可以看到结果,并且不限次数。如果编译有问题,会提示具体编译报错。如果用例没全部通过,会告诉你通过了多少。但不会告诉你哪个用例没过,不然你穷举就把题目做对了。
华为三道编程题是什么难度?mp.weixin.qq.com/s?__biz=MzU2NjE0NjMxNg==&mid=2247483962&idx=1&sn=69b0b152dd8e7ebe9ddb356b1538f51d&chksm=fcb1a659cbc62f4f6fbbae7d7fa9a55c324e1967c7d2bc0ffc0437b5be7df4a0cc4a682f11c7&token=1281231111&lang=zh_CN#rd编辑
1.2 【可使用IDE编辑器】
考试时,可以用本地的IDE编写代码,然后再复制到机考页面提交,因此本地不管用什么编辑器,一定要开启代码自动联想功能,这样一些常用的API即使忘了也没关系,记住工具包名有时会给你很好的联想出来。
1.3 【ACM输入输出】
机考是ACM模式,即自己写输入输出,这个如果之前一直是在力扣练习的话,一定要提前熟悉一下这个区别,把标准的输入输出掌握,这个是比较好掌握的,但是如果不练习是很难搞定的,如果因为这个挂掉就太可惜了,所以一定要先到牛客网练习一下或者公众号清宇offer里面有之前文章,学霸offer,里面是没有原题的。练习的网址主要是让你熟悉一下 ACM模式,即自己写输入输出,使用标准输入输出即可。
1.4 【摄像头防作弊】
邮件中的考试通知, 先点击"确认是否参加考试",跳转到考试系统,然后就是签字、调试摄像头、开启屏幕录制、提供一个二维码让你拿手机扫一下并保持在那个状态。这里需要说一下,摄像头不要断,手机充好电,扫完码放一边,点击"点击确认是否参加考试"前,就把没用的网页都关掉(有同学在开考前百度了一下 如何处理字符串,结果被判作弊了,很冤枉)。
2、防止被判定为疑似作弊,一定避免
如果你发现是刷过的原题,一定一定不要直接照抄之前的思路,否则直接判定为重复度大于80%作弊,一定要进行大改,比如抽出函数,循环替代等!!
2.1 出现“与之前的人代码重复率大于80%”的情况。 你即便刷到过别人发的答案,也不要照抄,改变量名没用。最好抽取个函数什么的,把 for 改为 while 之类的,大改,不然会被判定为作弊,还需要澄清,很麻烦。
2.2 出现“摄像头异常关闭”、“屏幕监控异常关闭”的情况。大部分是因为你电脑登陆着 微信或QQ,中途弹窗弹语音弹视频导致,请你开考前,把一切无关的东西全关掉。
2.3 出现“手机离开监控”的情况”的情况。请你到时候把手机卡拔了,连上WiFi和充电器,扫完码之后放一边别动它。
2.4 如果你是今年的应届毕业生,公众号清宇offer里面有之前文章可以学习。那么一定要检查你的机考时间要在毕业双证上写的时间之后,否则算违规情况,不允许在还没有拿到毕业证前的候选人参加机考。
3、刷题准备
考题一共三道,分值是100/100/200,通过多少用例,就得多少分。三道题累计得分,150分就算通过,但分数越高,对你的定级越有帮助。定级越高 = 薪资越高。150就像是我们高考时的一本分数线,并非你过了一本线,就可以上南大、北大 这种学校了,所以分数是王道,越高事越少。
3.1 如何高性价比,拿到150分,通过机考
1)真题难度相当于leetcode上面2道简单(各100分),1道中等的难度(200分)。相当于牛客网各一道简单,中等,困难的难度。需要最低考150分(但是这个分数是及格线,要有把握通过面试,机考争取要考300-400分以上),尽量多拿分。
2)机考是取三道题的总分,用例通过率*题目分数, 不一定要完全做对,因此如果遇到不能全部用例通过并且还想不到问题场景的时候,不要一直死磕,继续做其他题,不要出现等时间没了答案还没提交的情况。
3.2 模拟练习,重点看,可能有出现
最近发现这个帖子里贴了好多题目,不确定是否真题,但大家可以去看看,练练,发现看题解还要付费【付费觉得可以推荐B:学霸offer,有历年真题】,可以重点参考题目内容,网上搜索类似解答:HJ29字符串加解密
2023/2024华为笔试机考校招/社招软件工程师岗位考什么?三道编程题C/C++/Python软件开发工程师笔试题(2)
描述
对输入的字符串进行加解密,并输出。
加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
解密方法为加密的逆过程。数据范围:输入的两个字符串长度满足 1≤n≤1000 ,保证输入的字符串都是只由大小写字母或者数字组成。输入描述:
第一行输入一串要加密的密码
第二行输入一串加过密的密码
输出描述:
第一行输出加密后的字符
第二行输出解密后的字符 示例1
输入:
abcdefg
BCDEFGH
输出:
BCDEFGH
abcdefg
答案:
def encrypt(s: str) -> str:
encrypted = []
for ch in s:
if 'a' <= ch <= 'z':
encrypted.append(chr(((ord(ch) - ord('a') + 1) % 26) + ord('A')))
elif 'A' <= ch <= 'Z':
encrypted.append(chr(((ord(ch) - ord('A') + 1) % 26) + ord('a')))
elif '0' <= ch <= '9':
encrypted.append(str((int(ch) + 1) % 10))
else:
encrypted.append(ch)
return ''.join(encrypted)
def decrypt(s: str) -> str:
decrypted = []
for ch in s:
if 'a' <= ch <= 'z':
decrypted.append(chr(((ord(ch) - ord('a') - 1) % 26) + ord('A')))
elif 'A' <= ch <= 'Z':
decrypted.append(chr(((ord(ch) - ord('A') - 1) % 26) + ord('a')))
elif '0' <= ch <= '9':
decrypted.append(str((int(ch) - 1) % 10))
else:
decrypted.append(ch)
return ''.join(decrypted)
if __name__ == '__main__':
input_str1 = input().strip()
input_str2 = input().strip()
encrypted_str = encrypt(input_str1)
decrypted_str = decrypt(input_str2)
print(encrypted_str)
print(decrypted_str)
下面是对这个加解密程序的解析:
- 定义加密函数encrypt,输入一个字符串s,输出加密后的字符串。在函数内部,初始化一个空列表encrypted,用于存储加密后的字符。
- 遍历输入字符串s中的每个字符ch,根据加密规则进行替换:
- 如果ch是小写字母,将其替换为下一个大写字母。计算方式为:
(ord(ch) - ord('a') + 1) % 26 + ord('A')
。 - 如果ch是大写字母,将其替换为下一个小写字母。计算方式为:
(ord(ch) - ord('A') + 1) % 26 + ord('a')
。 - 如果ch是数字,将其替换为下一个数字。计算方式为:
(int(ch) + 1) % 10
。 - 如果ch是其他字符,保持不变。
- 将加密后的字符列表encrypted转换为字符串并返回。
- 定义解密函数decrypt,输入一个字符串s,输出解密后的字符串。这个函数的实现与encrypt类似,只是替换规则相反。
- 在主函数中,从输入中读取两个字符串input_str1和input_str2,分别调用encrypt和decrypt函数对这两个字符串进行加密和解密。
- 输出加密和解密后的字符串。
这个程序使用了Python的内置函数ord和chr来实现字符与ASCII码之间的转换,以及字符串切片操作来处理加解密规则。
在解析过程中,我们首先遍历输入字符串的每个字符,然后根据加解密规则替换字符,最后将处理后的字符列表转换为字符串并输出。
华为10年经验多次OT留学生博士