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
先是开发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
相关文章推荐
- 阿里巴巴2015秋季校招(客户端开发工程师岗位)在线笔试题
- 寻找Coder(2015去哪儿校招笔试题)
- 深圳科陆集团2015校招软件开发笔试题
- 写写2015腾讯校招笔试(后台开发)
- 田忌赛马 - 去哪儿2018校招哈尔滨在线笔试题 - 开发工程师
- 搜狗2015校园招聘Java开发笔试
- 百度2015校园招聘软件开发笔试题
- 阿里巴巴2015校招笔试附加题2解答
- 阿里巴巴2015校招笔试题附加题1解答
- 2015 阿里校招 Web前端开发 在线笔试总结
- 2015 软件开发笔试和面试题
- 腾讯2015校招笔试题
- 腾讯2015软件开发实习生招聘笔试
- 去哪儿2015年校招笔试
- 大众点评2015校招第一次在线笔试(Web前端工程师)
- 2015年网易校招Java开发工程师(技术架构)在线笔试题(2015年9月20日 18:00—20:00)
- 百度2015软件开发工程师笔试题
- 2015阿里巴巴校招网上笔试
- [实战演练]2014腾讯校招软件开发笔试题
- [阿里2015校招笔试]求二叉树中相差最大的两个节点间的差值绝对值