2015年百度二面试题

一、先自我介绍一下


二、写个程序吧

【试题一】:

实现一个atoi()函数,功能和库函数atoi()的功能一致。

函数原型面试官已经给出:

int atoi(const char *pNum)
{
     //由面试者来实现功能
}

注意:

最开始要对*pNum进行异常检查(pNum是否等于NULL,如果pNum等于NULL应该进行异常处理)

数字字符串的最开始是否含有"+"或者“-”、数字中是否含有0~9之外的其他字符,遇到其他非法字符该如何处理,例如pNum指向的数字字符串是"235#18"

遇到小数点"."该如何处理,比如“123.45”

同时遇到0~9之外的其他非法字符和小数点"."该如何处理,例如“123%45.678”

最开始就是0~9之外的其他非法字符该如何处理,例如“$12345”、".5567"

总之,要对库函数atoi()的功能足够熟悉,库函数atoi()对各种输入的字符串都是如何处理的,最好看一下库函数atoi()的源码,这样atoi()的功能便一目了然。


【试题二】:

写一个函数求整型数组中连续子数组的最大乘积。

这道题有点像求连续子数组的最大和、编程之美2.13子数组的最大乘积这种问题,但是这道题更为复杂一些。因为求连续子数组的最大和的重点是判断当前的连续子数组之和是否小于0,编程之美2.13子数组的最大乘积的试题不要求子数组连续,而这道题要求是连续子数组,而且因为是乘积所以要考虑子数组是否含有0,是否含有负数、负数的个数是奇数个还是偶数个等各种情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值