第一题:
$a = '&&29&&&&&yy3&&';
$s = '&&';
function strToArr($a,$s){
$n = strlen($s);
$j = 0;
$data = array();
for($i=0;$i<strlen($a);$i++){
if(substr($a,$i,$n)==$s){
if($i==0){
$data[$j] = '';
$j++;
$i += $n-1;
continue;
}else if($i==(strlen($a)-$n)){
$j++;
$data[$j] = '';
$i += $n-1;
continue;
}else if(substr($a,$i+$n,$n)==$s){
$j++;
$data[$j] = '';
$i += $n-1;
continue;
}else{
$j++;
$i += $n-1;
continue;
}
}else{
if(!isset($data[$j]))
$data[$j] = '';
$data[$j] .= $a[$i];
}
}
return $data;
}
echo '<pre>';
echo '字符串1:'.$a;
echo '分割符:'.$s;
var_dump(strToArr($a,$s));
echo '</pre>';
echo '<pre>';
$a = 'yyy29yyy&&yyy3&&';
$s = 'yyy';
echo '字符串2:'.$a;
echo '分割符:'.$s;
var_dump(strToArr($a,$s));
echo '</pre>';
得到结果:
字符串1:&&29&&&&&yy3&&分割符:&&
array(5) {
[0]=>
string(0) ""
1=>
string(2) “29”
[2]=>
string(0) “”
[3]=>
string(4) “&yy3”
[4]=>
string(0) “”
}
字符串2:yyy29yyy&&yyy3&&分割符:yyy
array(4) {
[0]=>
string(0) ""
1=>
string(2) “29”
[2]=>
string(2) “&&”
[3]=>
string(3) “3&&”
}
### 第一题(2)
$a = array('11','55','&&','ee');
$s = '&&';
function arrToStr($a,$s){
$str = '';
foreach($a as $k=>$v){
$str .= $v.$s;
}
$str = substr($str,0,-2);
return $str;
}
$str = arrToStr($a,$s);
echo '<pre>';
echo '数组:';
var_dump($a);
echo '拼接符:'.$s;
var_dump($str);
输出结果
数组:array(4) {
[0]=>
string(2) "11"
1=>
string(2) “55”
[2]=>
string(2) “&&”
[3]=>
string(2) “ee”
}
拼接符:&&
string(14) “11&&55&&&&&&ee”
第二题:
$n = 100;
function getMaxNum($n){
//去除偶数
if($n%2==0)
$n = $n-1;
//遍历奇数 被除数为奇数
for($n;$n>=2;$n -=2){
$flag = '';
for($i=sqrt($n);$i>2;$i-= 2){
echo 1;
//能被整除 非质数 结束循环
if(($n%$i==0)){
$flag = 1;
break;
}
}
if(!$flag){
return $n;
}
}
return false;
}
$num = getMaxNum($n);
var_dump($num);
输出结果
11111int(97)
第三题
$a = [0,1,2,3,4,5,6,7,8,9,6];
function getRepeat($a){
$data = [];
foreach($a as $k=>$v){
if(isset($data[$v]) && $data[$v]==$v){
return $v;
}
$data[$v] = $v;
}
return false;
}
$num = getRepeat($a);
var_dump($num);
输出结果:
int(6)
第四题:
function king($n,$m) {
$people = range(1,$n);
$i = 0;
while(count($people) > 1) {
if(($i+1)%$m == 0) {
unset($people[$i]);
} else {
//如果不是制定的数字直接往后面追加 这样可以一直进行下去
array_push($people,$people[$i]);
unset($people[$i]);
}
$i++;
}
return current($people);
}
$n = 8;$m = 4;
$king = king($n,$m);
print_r($king);
输出结果
6