PHP百度面试题:版本号排序
2016-04-27 13:21
816 查看
http://blog.csdn.net/aoyoo111/article/details/19909995
思路是用explode分割为数组,取出每一项比较
<?php
$versionArr=array(
"99.101.202.1.0",
"111.101.202.1.1",
"112.101.202.1.1",
"111.98.202.1.1",
"111.103.201.0.1"
);
//比较函数
function comparefun($va,$vb){
$a = array_shift($va);
$b = array_shift($vb);
if($a>$b){
return 1;
}elseif($a<$b){
return 0;
}else{
return comparefun($va,$vb);
}
}
array_walk($versionArr, function(&$value){
$value = explode('.', $value);
});
for($i=0;$i<count($versionArr)-1;$i++ ){
for($j=0;$j<count($versionArr)-1-$i;$j++){
if(comparefun($versionArr[$j],$versionArr[$j+1])){
$tmp = $versionArr[$j];
$versionArr[$j] = $versionArr[$j+1];
$versionArr[$j+1] = $tmp;
}
}
}
array_walk($versionArr, function(&$value){
$value = implode('.', $value);
});
echo '<pre>';
print_r($versionArr);
ps:权限的整理可以用到递归,也可以整理一个各级权限数值字符串拼接类似上边的字符串,按照ascii码排序(要求权限数目不大),这样可不用递归
思路是用explode分割为数组,取出每一项比较
<?php
$versionArr=array(
"99.101.202.1.0",
"111.101.202.1.1",
"112.101.202.1.1",
"111.98.202.1.1",
"111.103.201.0.1"
);
//比较函数
function comparefun($va,$vb){
$a = array_shift($va);
$b = array_shift($vb);
if($a>$b){
return 1;
}elseif($a<$b){
return 0;
}else{
return comparefun($va,$vb);
}
}
array_walk($versionArr, function(&$value){
$value = explode('.', $value);
});
for($i=0;$i<count($versionArr)-1;$i++ ){
for($j=0;$j<count($versionArr)-1-$i;$j++){
if(comparefun($versionArr[$j],$versionArr[$j+1])){
$tmp = $versionArr[$j];
$versionArr[$j] = $versionArr[$j+1];
$versionArr[$j+1] = $tmp;
}
}
}
array_walk($versionArr, function(&$value){
$value = implode('.', $value);
});
echo '<pre>';
print_r($versionArr);
ps:权限的整理可以用到递归,也可以整理一个各级权限数值字符串拼接类似上边的字符串,按照ascii码排序(要求权限数目不大),这样可不用递归
相关文章推荐
- 转行程序员2 机器学习 线性回归 Linear Regression II 纯属敦促自己学习
- GEEK学习笔记— —程序员面试宝典笔记(五)
- php面试题及答案
- 面试经历和总结
- android面试题(一)
- 漫谈程序员系列:咦,你也在混日子啊
- 码农小汪-非常不安逸 怎么我写的注解没有自动给我生成时间呢!javadoc 配置起来非常的简单
- 【图灵有聊】说好的安全呢?
- 奋斗吧,程序员——第十七章 年年岁岁花相似,岁岁年年人不同
- 面试感悟----一名3年工作经验的程序员应该具备的技能
- 笔试面试题一
- 找工作的感受和今天一场奇葩的面试
- hadoop面试100道收集(带答案)
- 值得程序员和设计师关注的微信公众号
- Java---练习(面试题) :字符串截取(1)
- Java---练习(面试题) :字符串截取(1)
- 职业猎头是怎么让高级人才上钩的?这里有挖掘能人的5个原则
- lintcode之不同子序列数 + 序列II
- 开发的本质 从更高点看软件开发的侧重点
- 高效才是王道:远程工作者健康指南