Look And Say 序列php实现代码

yipeiwu_com7年前PHP代码库
比如:
第一个数字是:1。
看着第一个数字你可以说1个1,那么第二个数字就是:11。
看着第二个数字你可以说2个1,即第三个数字是:21。
看着第三个数字你可以说1个2,1个1,即第四个数字是:1211。
看着第四个数字你可以说1个1,1个2,2个1,即第五个数字是:111221。
…………
根据详细的说明可以参见:http://en.wikipedia.org/wiki/Look-and-say_sequence
下面用PHP实现这个序列,如下:
复制代码 代码如下:

function look($str)
{
$len = strlen($str);
$count=0;
$result='';
$temp=$str[0];
for($i=0;$i<$len;$i++)
{
if($temp!=$str[$i])
{
$result.=$count.$temp;

$temp = $str[$i];
$count=1;
}
else
{
$count++;
}
}
$result.=$count.$temp;
return $result;
}

$test_str = "1";
echo $test_str.'</br>';
for($i=0;$i<10;$i++)
{
$test_str=look($test_str);
print $test_str."</br>";
}

注意look函数中的for循环,当$len-1时,$result并未累加最后一位数字的统计结果,所以在循环完成后再次累加一次。

最后输出结果:

1
11
21
1211
111221
312211
13112221
1113213211
31131211131221
13211311123113112211
11131221133112132113212221

作者:ywxgod

相关文章

php禁止浏览器使用缓存页面的方法

本文实例讲述了php禁止浏览器使用缓存页面的方法。分享给大家供大家参考。具体方法如下: 页面缓存在有的时候是不需要的,我们可以禁止浏览器缓存页面。 在PHP中可以轻松的使用下面的语句实现...

php+ajax实现无刷新分页

php+ajax实现无刷新分页

本文实例讲述了php+ajax实现无刷新分页实现方法。分享给大家供大家参考。具体如下:     limit  偏移量,长度;  &nbs...

yii2超好用的日期组件和时间组件

日期组件,时间组件在平时开发中是必不可少的。今天我们就来谈谈在yii2中的超好用的时间组件,也省的大家各种找js插件了。 分享之前我们先预览下效果,看看到底怎么个好用法。 当然啦,好用不...

PHP的中使用非缓冲模式查询数据库的方法

最近在开发一个PHP程序时遇到了下面的错误: PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted 错误...

PHP实现深度优先搜索算法(DFS,Depth First Search)详解

PHP实现深度优先搜索算法(DFS,Depth First Search)详解

本文实例讲述了PHP实现深度优先搜索算法。分享给大家供大家参考,具体如下: 深度优先搜索的实现原理: 实现代码: <?php class Search_Method...