码迷,mamicode.com
首页 > 移动开发 > 详细

几个论坛上看到的2015小米笔试题

时间:2015-07-29 12:21:54      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

一、

题目描述

 大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。
c++:
     bool isPalindromeNumber(long num);
java:
     boolean isPalindromeNumber(long num);



解题思路

1、将long转换为字符串,从头和尾向中间扫描即可
2、每次取出头尾的数字,比较,然后去掉头尾
3、取出每一位放入栈中,再弹出组成一个新数,和原数比较

二、

题目描述

求两个多项式的乘积
     pa=an*x^n + an-1*x^(n-1) + ... + a1*x + a0;
     pb=bm*x^n + bm-1*x^(n-1) + ... + b1*x + b0;
其中,an,an-1...a1,a0,bm,bm-1...b1,b0都是整数,范围是[-1000,1000],0<=n,m<=1000。pa*pb的结果也是多项式,请你设计如何表示一个多项式,并写出两个多项式相乘的程序。
c++:
     string multiplyPloynomial(const string&pA,const string&pB);
java:
     String multiplyPloynomial(String pA,String pB);
其中pA和pB的格式都是“(-3,5),(87,4),(93,3),(3,0)”,表示一个多项式为-3*x^5 + 87*x^4 + 93*x^3 + 3。输入都是合法的,除了数字,左右括号和逗号没有别的任何字符,并且幂次都是从高到低排列的,输出也要求是这样的标准格式。

解题思路


采用链表来表示多项式,因为如果用数组有可能遇到稀疏问题,同时链表可以动态添加节点。

相乘时,采用hashmap来保存两两相乘的结果,最后在扫描一遍hashmap即可构造出多项式

三、

技术分享

这题应该是关于图的,偷懒了~~~图不怎么会

几个论坛上看到的2015小米笔试题

标签:

原文地址:http://blog.csdn.net/walker19900515/article/details/47123719

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!