阿里巴巴2020暑期实习笔试题目及经验分享

声明:如果侵权,请联系立即删除!!
声明:如果侵权,请联系立即删除!!
声明:如果侵权,请联系立即删除!!

阿里巴巴2020暑期实习笔试题

一、考试简介

考试时间:1个小时

技术支持笔试一共两道题(两道编程,语言不限)
其他的岗位暂时不清楚

时间限制:C/C++2秒,其他语言4秒
空间限制:C/C++131072K,其他语言262144K 64bit IO Format:%lld
注意:考试前一定要准备好笔和纸,调试好摄像头,手机设置常亮,否则会出现小程序报异常。

二、题目详情

题目一:
题目描述:
现在有n个怪物,每一个怪物有一定的血量,你手里有m只箭,每一只箭都有一个伤害值,同时也有一个花费。我们现在假设每一只箭只能用一次并且每一个怪物也只能射一次,想要把所有怪物都击杀问最少需要花费多少,若无法全部击杀,则输出No。
击杀的条件为:使用的这只箭的伤害大干等于怪物的血量,则就可以击杀。
输入描述:
第一行输入一个整数了,代表有T组测试数据。
对于每一组测试数据,一行输入两个整数n和m,代表有n个怪物,m只接下来n个数,a(i)代表每一个怪物的血量,接下来m个数,b(i)代表每一只箭的伤害:接下来m个数,c(i)代表每一只箭的花费。
|1≤T≤10
|1≤n,m≤100000
1≤a[i],b[i],c[i]≤100000
输出描述:
对于每一组数据,输出一行,代表满障怪物的最少花费,若消除不了,输出NO
题目二:
题目描述
小强很喜欢二进制的里,现在给你一个二进制串,可以翻转若干次,翻转规则如:你可以选择任一个位置将这位进行翻转,同时他的左面和右面相邻的1个位置也进行翻转,翻转是0变成1,1变成0例如:11011,我们选择在第三个位置翻转。则第二个位置和第四个位置也跟着翻转,所以反转后变成10101若翻转位置在最左侧,则只有右侧相邻元素跟右进行翻转,右翻转位置在最右侧,则只有左侧相邻元素跟看翻转。
现在小强给你这个二进制串,他想知道能不能做通过翻转,使得这个二进制串的所有位部是0,若可以,请找到最少的操作次数,若不可以输出NO.
输入描述:
第一行输入一个整数T,代表有T组测试数据,接下来丁行,每一行一个字符串S,保证只有0和1。
1≤T≤100
1≤len(s)≤20
输出描述:
对子每一组教据,继出一行,代表最少的操作次数,若不可以,输出N0。

问题答案
这两道题,我是用的python完成的整个题目,在这里就不展示了,之前打包发送给别人,探讨中发现错误,在这里就不误导大家了。仅分享题目。

二、经验之谈

注意事项:
注意!!!!!!!!!!!!!!!!!!!!!!
一定要选择对应语言版本:python的2 3有本质差别,注意低版本和高版本之间的区别,不能使用一些低版本中不支持的语句,前人踩过的坑,考试中使用的python中最高版本是3.5(牛客网目前python常见最高的版本是3.5和3.6)。
真实的事故:

我学习的是python3.7,在一次编程考试中,题目是我遇到的题目,在编程过程中,我使用了一个修饰器 Data Classes,在python3.7之前的版本中不存在在这个修饰器,我本地安装的是python3.7环境,本地运行正常,在网站自测时一直报错(没有输出结果),网站不报错误结果,就这样我与这次机会失之交臂。

经验总结:
1.考试时间1个小时,我们需要完成两个编程题,相对较短,我们在考试中可以使用计算器,纸张,我建议先手写出你的整体思路,搞清楚自己的逻辑,构建整体框架,不要在编程框书写自己的注释,注释存在提交不上,亲身体会。
2.编程过程中,尽量使用题目中给的变量,在自己定义变量时一定要让别人一眼可以看得明白。
3.如果使用python编程,在线一定要检查缩进(python缩颈严格的语言),一定要自查,查看是否满足条件,是否能达成题目中给的要求,如果不同过,一般提交也没有用。
4.一定要查看实例输出文件,这样我们有一个参考的方向,这让我们知道往那个方向,你的输出格式尽量和示例保持一致,我们在编程过程中我们一定要符合常见的编程规范,我们一定要考虑看你编程人的感受,只有让他们看到开心了,你才能顺利通过。
5.在编程过程中不限制跳转,我们可以使用本的环境中进行编辑排错(一定不要出现中文字符);不建议查询文档,如果实在忘记可以查询官方的说明文档,我考试中查询了python的官方说明文档,
6.编程题没有正确答案,只要达到结果就可以,主要考察的是你的编程思维。我的编程结果:这里我是用的python完成的整个题目,在这里就不展示了,

声明:如果侵权,请联系立即删除!!

需要结果的可以在评论区留下你的邮箱私发给你

原文地址:https://www.cnblogs.com/tianyao2020/p/12755237.html