华为笔试刷题 | 题型总结
高质量:
1~20:HJ6 质数因子,HJ16 购物单,HJ18 识别有效的IP地址和掩码并进行分类统计,HJ19 简单错误记录
20~40:HJ22 汽水瓶,HJ24 合唱队,HJ26 字符串排序,HJ27 查找兄弟单词,HJ28 素数伴侣,HJ35 蛇形矩阵,HJ37 统计每个月兔子的总数,HJ39 判断两个IP是否属于同一子网
40~60:HJ41 称砝码,HJ42 学英语,HJ43 迷宫问题,HJ44 Sudoku,HJ48 从单向链表中删除指定值的节点,HJ50 四则运算,HJ52 计算字符串的编辑距离,HJ53 杨辉三角的变形,HJ57 高精度整数加法,
60~80:HJ61 放苹果,HJ63 DNA序列,HJ64 MP3光标位置,HJ70 矩阵乘法计算量估算,HJ71 字符串通配符,HJ74 参数解析,HJ77 火车进站,
80~100:HJ82 将真分数分解为埃及分数,HJ85 最长回文子串,HJ88 扑克牌大小,HJ89 24点运算,HJ93 数组分组,HJ95 人民币转换,HJ98 自动售货系统,
100~108:HJ103 Redraiment的走法,HJ107 求解立方根,
常用基本方法:
(1)ord函数返回字符的ASCII码:ord('a') out: 97
(2)chr将ASCII码转为字符串:chr(97) out: 'a'
(3)其他进制数转为十进制整数:int('A1', 16) out: 161
(4)十进制整数转二进制:bin(123) out:'0b1111011'
(5)'{:0<8}'.format(123)字符串格式化含义:“:”后为插入字符,<、>、^分别表示内容左/右/居中对齐 out:'12300000'
(6)大小写字母排序(不改变字符原有顺序):sorted(s, key=str.upper)
(7)判断w1和w2中元素相同但排列顺序不同:sorted(w1)==sorted(w2)
(8)素数判断:
def is_prime(num):
if num <= 3:
return num > 1
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
return False
return True
高质量题: 1~40:HJ16,HJ22,HJ24,HJ26,HJ27,HJ28,HJ35,HJ37,HJ39; 40~80:HJ41,HJ42,HJ43,HJ44,HJ48,HJ50,HJ52,HJ53,HJ57,HJ61,HJ63,HJ64,HJ70,HJ71,HJ74,HJ77; 80~108:HJ82,HJ85,HJ88,HJ89,HJ93,HJ95,HJ98,HJ103,HJ107