比如:
第一个数字是:1。
看着第一个数字你可以说1个1,那么第二个数字就是:11。
看着第二个数字你可以说2个1,即第三个数字是:21。
看着第三个数字你可以说1个2,1个1,即第四个数字是:1211。
第一个数字是:1。
看着第一个数字你可以说1个1,那么第二个数字就是:11。
看着第二个数字你可以说2个1,即第三个数字是:21。
看着第三个数字你可以说1个2,1个1,即第四个数字是:1211。
看着第四个数字你可以说1个1,1个2,2个1,即第五个数字是:111221。
方法1:
function LookAndSay($str){
$length = strlen($str);
$val = $str[0];
$number = "";
$par = 1;
for($i=1;$i<$length;$i++){
if($str[$i] == $val){
$par++;
}else{
$number.=$par.$str[i];
$par = 1;
$val = $str[i];
}
return $number.$par.$val;
}
方法2:
function LookAndSay2($s){
$m = $s[0];
$n = 1;
for($i = 1, $j = strlen($s); $i < $j; $i++){
if($s[$i] == $m){
$n++;
}else {
return $n.$m.lookandsay2(substr($s,$n));
}
}
return $n.$m;
}