金山网络现猎豹移动公司( Cheetah Mobile Inc. NYSE:CMCM ),成立于2016年10月,由金山安全和可牛影像公司合并而成,继承了金山15年的安全技术积累和可牛影像的互联网基因。是全球最大的移动工具开发商、中国第二大互联网及移动互联网安全公司。致力于为全球用户提供快捷、简单、安全的互联网及移动上网体验。
以下是金山网络2015实习生笔试题,大家敬请了解:
一、请用伪代码描述,在Android系统上启动和停止Service有哪些方法,并说明这些方法导致Service的生命周期有何不同?
二、输入一个正整数 X,以2*X,4*X,8*X的方式递增,当大于10000时,再倒叙输出已经输出的整数。【要求:不得使用循环和其他任何变量(包含局部变量)辅助】
比如 X= 2468,输出结果为:
2468,4936,9872,19744,19744,9872,4936,2468
三、有两个字符串由不同的字母组成,一长一短,长的为A,短的为B。设计一个算法,如果所有在B中出现的字符都在A中出现,则返回true,否则返回false。假设A的长度为m,B的长度为n,要求算法时间复杂度不能大于O(m+n)。
四、实现如下工作者类IKWorker,调用者通过调用AddJob将Runnable类型的job提交给IKWorker,IKWorker负责异步执行所有提交过来的job。【要求:尽量高效,不得使用系统的线程池】
public interface IKWorker{
public boolean Start();
public void AddJob(Runnable job);
public boolean Stop();
}
五、在Android手机中实现一个App,用来做文件下载,可在App界面新增,暂停和取消下载文件及展示下载过程中的进度,同时要保证Activity退出时后台仍然能再下载。当界面启动时还可以显示正在下载的文件及进度。【要求:写出实现此App的设计思想,尽量易懂,简洁】
六、系统/sdcard/目录下有很多张图片,现需要一activity通过缩略图的方式浏览所有图片,在设计中体现对一下三点的处理: