2015小米校招技术类笔试题

一、问答题

1.  

 大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串。比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?这么简单的题目对想要成为小米工程师的你来说肯定不是问题。不过提醒一下哦:时间复杂度和空间复杂度越低的算法,得分越高。

C++

  bool isPalindromeNumber(long num)

Java:

  boolean isPalindromeNumber(long num)

示例:

12321 ->  true

      3     ->  true 

      133434->  false


2.    

求两个多项式乘积的问题相信大家在中学时经常碰到,它是这样的一个问题:pa=an*x^n + an-1*x^(n-1) + … + a1*x + a0pa=bm*x^m + bn-1*x^(m-1) + … + b1*x + b0
其中,an, an-1, …,a0, bm, bm-1, … ,b0 都是整数,范围[-10000, 10000]。0<=n, m <=1000。
pa*pb的结果也是一个多项式,请你编程来解决这个问题,你需要设计如何表示一个多项式并写出两个多项式相乘的程序。C++:
string multiplyPolynormial(const string&pA,const string&pB)Java:
String multiplyPolynormial(String pA,String pB)
其中pA和pB的格式都是“(-3,5),(87,4),(93,3),(3,0)”,表示一个多项式:-3*x^5 + 87*x^4 + 93*x^3 + 3
输入都是合法的,除了数字,左右括号和逗号没有别的任何字符,并且幂次都是从高到低排列的,输出也要求是这样一个标准的格式。


3.     

小米公司内部每个员工都会有一个专属的工作邮箱,邮箱的前缀是员工姓名的拼音全拼,例如张强的邮箱是zhangqiang@xiaomi.com,但同时公司里有很多同名的人,为了避免大家相互之间发错邮件,工程师们想了个规则来解决这个问题,即在这些同命人中,入职最早的邮箱前缀为姓名的拼音全拼,第二个入职的邮箱前缀为姓名的拼音全拼后面加“_a”,第三个入职的为姓名的拼音全拼后面加“_b”,以次类推,请按这个规则,如果公司里同时有3位名叫张强的员工,则他们的邮箱分别是zhangqiang@xiaomi.com,zhangqiang_a@xiaomi.com,zhangqiang_b@xiaomi.com...邮箱前缀是员工在公司里的重要标识之一,问题来了:现在小米要举行一次全员野外拉练活动,要求所有员工必须排成一队出去,并且,有的员工要求他必须排在某人的前面或后面,作为组织者的你,收到这样的需求之后,如何给出一个让每个人都满意的排队方式呢?

Java:
class RequestItem{
    public String member;
    public boolean standFront; //true表示要排在这个人的前面,false表示要排在这个人的后面}
class Request

{

    public String owner;    //

那个人提出的要求

    List<RequestItem> requestItems;    //

他要排在哪些人的前面,哪些人的后面

}

List<String> getValidOrder(List<String>allMembers, List<Request> requests);

allMembers就是所有员工的邮箱前缀,requests是一些人的排队要求。小米公司现有几千名员工,每个人最多有10个排队要求(要排在一个人的前面或者后面算一个排队要求),也有人没有什么要求。现在你的任务是完成上面的getValidOrder函数,如果有合法的排队序列,那么返回其中任何一个。否则返回null


4.
下图是一个Accordion组件,请用HTML+CSS实现其UI,并用面向对象的思路把折叠效果的JS实现。如果能用纯css的方式实现其折叠效果更佳。


HTML:

CSS:

JS:


5.

简述Andriod如何处理UI与耗时操作的通信,有哪些方式及各自的优缺点。


6.

小米作为一家炙手可热的科技公司,每推出一款新产品都会受到用户极大的追捧,从最初的米1,到现在的米4,小米电 视2等无一例外。新产品上市之初供不应求的现象是由很多原因造成的,比如电子元器件供应厂商产能不足,组装工厂 装配线的数量跟不上,等等。产品上市初期供货较少,想买的用户又特别多,所以在抢购的时候需要通过各种手段来防 止“黄牛”,尽可能的把产品卖给真正有需要的用户。小米已经制定了一系列综合措施防范“黄牛”购买,但还是无法做到百分百杜绝,你能帮忙制定更好地防范"黄牛"的策略或模型吗,用在用户抢购的时候识别出哪些是真正的用户哪些 是"黄牛"?请写出你设计的系统的主要模块和功能,以及其他必要的说明。


7.

已知String convert(String page)作用是将WEB页转码为方便移动设备查看的页面,为了确保转码的正确性,请设计相应测试策略

个人资料
0_0
等级:7
文章:111篇
访问:5.0w
排名: 6
推荐
欢迎关注 “BAT笔试面试” 微信公众号
全栈面试题,你想要的都在这^_^
上一篇: 小米公司JavaScript面试题-2014年
下一篇:小米面经-2014
猜你感兴趣的圈子:
小米笔试面试圈
标签: 邮箱、小米、员工、zhangqiang、全拼、面试题