您的位置:首页 > 其它

2015去哪儿校招(长春站)开发笔试题

2014-09-16 18:14 363 查看
笔者php菜鸟,上午参加去哪儿校招笔试,趁还记得题目和大家分享一下。

先是开发3道大题(其实也不是很大)

要求实现一个删除指定数组中数字。

自己当场函数没想起array_search和array_splice就用foreach+array_merge+array_slice做的,不要见笑~~

function removeElement(array $arr,$val){

if($key=array_search($val)){

return array_splice($arr,$key,1);

}

return $arr;//无此数字直接返回原数组

}

实现一个餐厅叫号功能,面向两种客户:普通和VIP,普通客户正常排号,VIP随时可插号,但在同类用户中按先后排号。要求实现两个函数 addCusomer(string phoneNum) 和current()

按我的理解就写了个类,但是成员函数中调用变量忘记$this去调用了,哎画蛇添足~~

修正版

class MarketCall{

private $common=array();

private $this->vip=array();

function is_VIP($phone){

//判断是否为VIP

}

function addCustomer($phone){

if(is_VIP($phone)){

array_push($this->vip,$phone);

}else{

array_push($this->$common, $phone);

}

}

function current(){

if(!empty($this->vip)){

return array_shift($this->vip);

}

if(!empty($this->common)){

return array_shift($this->common);

}

return NULL;

}

}

c.实现中文数字向阿拉伯数字转换,如贰仟叁佰亿===》2300 0000 0000

对于这个题目比较常见我就说我的方法不写代码了

建立两个数组.

num:一个是0-9的汉字对应 像 '壹'=>1;另一个是

lev: 进制位的汉字对应 像 '百'=>100

然后对汉字进行从左向右遍历,如当前字符存在于num的键值中就转换为数字,如如是lev的键值就与对应进制相乘

还有要注意的是每遇到 亿 或 万 就将之前计算结果保存,然后归零变量,以免重复进制相乘。

然后有两道前段题目(选做

画出CSS盒模型,并用js代码写出求div的宽度和位置信息,考虑兼容

笔者css一般,但是盒模型还是绘画的,毕竟firefox里经常见到,但是兼容求宽高就不会了,直接写的jQuery的width()和position()方法,这里就不误导大家了

对一个数组(如[1,2,3,4,5])的元素顺序打乱输出,到要求100次内不重复

我当时的思路是Math.random()随机打乱+闭包函数保存已随机过的数组键拼接字符串用于唯一判断

但回来想保存值序列不更好么,另查了大神的打乱数组方式,综合一下,和大家分享

<script>

function random(a, b){

//用于打乱数组的排序函数

return Math.random()>.5 ? -1 : 1;

}

//闭包函数

var uniqueArr=(function(uniqueStr){

var arr=[];

return function(uniqueStr){

for(var i=0,len=arr.length;i<len;i++){

if(arr[i]==uniqueStr){

return false;

}

}

arr.push(uniqueStr);

return arr;

};

})(null);

//打乱数组函数

function randomSort(arr){

var res=arr.sort(random);//打乱的数组

var keys=res.join('');//数组值串

if(un=uniqueArr(keys)){//不重复

//console.log(un,res);//测试用

return res;

}else{

return randomSort(arr);

}

}

var arr = [1, 2, 3, 4, 5];

randomSort(arr);

randomSort(arr);

randomSort(arr);

randomSort(arr);

randomSort(arr);

</script>

然后是测试,不感冒,但是看着是要考 代码测试和案例分析

最后是android开发的选做题,问的是MVC,Activity后台生命周期,还有一个忘了,网上应该能查到。

欢迎与我讨论,提高。

--phpnewbie

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: