华为笔试9.23 2.05
第一题1.0,第二题1.0,第三题0.05
第一题是:
1. 算敏感词的每个字符在原词中的位置,比如 ACEF: sen_pos = [[], [8], [10], [11]]
2. 改变下形式并排序 sorted_idxs = [(8, 1), (10, 2), (11, 3)]
3. 从小到大遍历这个列表。
for ori_idx, sen_idx in sorted_idxs:
# 假设以ori_idx为起始位置
curr_pos = ori_idx
match_num = 1
for j in range(sen_idx + 1, len(sorted_idxs)):
if curr_pos + 1 in sen_pos[j]:
match_num += 1
curr_pos = curr_pos + 1
elif curr_pos + 2 in sen_pos[j]:
match_num += 1
curr_pos = curr_pos + 2
if match_num >= int(len(sen_pos) * 0.8):
# found
第二题mv比较麻烦:
实现ls为返回给定path下的所有全路径
1. ls找到src下的全路径 all_files
2. rm(src)
3. for tf in all_files:
第三题是真的有点麻烦,试着实现了两个公园的情况,先找两个长方形的连接点集合,然后从from的起点,找 distance(from_point -> link_point) + distance(link_point -> to_point)的最小值。但只过了5%估计还有很多bug
#笔试题目##华为#
第一题是:
1. 算敏感词的每个字符在原词中的位置,比如 ACEF: sen_pos = [[], [8], [10], [11]]
2. 改变下形式并排序 sorted_idxs = [(8, 1), (10, 2), (11, 3)]
3. 从小到大遍历这个列表。
for ori_idx, sen_idx in sorted_idxs:
# 假设以ori_idx为起始位置
curr_pos = ori_idx
match_num = 1
for j in range(sen_idx + 1, len(sorted_idxs)):
if curr_pos + 1 in sen_pos[j]:
match_num += 1
curr_pos = curr_pos + 1
elif curr_pos + 2 in sen_pos[j]:
match_num += 1
curr_pos = curr_pos + 2
if match_num >= int(len(sen_pos) * 0.8):
# found
第二题mv比较麻烦:
实现ls为返回给定path下的所有全路径
1. ls找到src下的全路径 all_files
2. rm(src)
3. for tf in all_files:
mkdir(dist + "/".join(tf.split("/")[len(src.split("/"):])) # 构造下新的路径
第三题是真的有点麻烦,试着实现了两个公园的情况,先找两个长方形的连接点集合,然后从from的起点,找 distance(from_point -> link_point) + distance(link_point -> to_point)的最小值。但只过了5%估计还有很多bug
#笔试题目##华为#