Look And Say 序列php实现代码

2015-01-24信息快讯网

Look And Say序列,简单的说就是根据你看到的数字,写出下一个数字

比如:
第一个数字是: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数组相加 array(“a”)+array(“b”)结果还是array(“a”)
巧用php中的array_filter()函数去掉多维空值的代码分享
Windows下部署Apache+PHP+MySQL运行环境实战
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
Zend Framework中的简单工厂模式 图文
工厂模式在Zend Framework中应用介绍
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
PHP序列号生成函数和字符串替换函数代码
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
php数组函数序列之array_pop() - 删除数组中的最后一个元素
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
php性能优化分析工具XDebug 大型网站调试工具
php利用cookie实现访问次数统计代码
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
php HandlerSocket的使用
fleaphp crud操作之find函数的使用方法
fleaphp crud操作之findByField函数的使用方法
Windows下利用Gvim写PHP产生中文乱码问题解决方法
php 数组排序 array_multisort与uasort的区别
php expects parameter 1 to be resource, array given 错误
array_multisort实现PHP多维数组排序示例讲解
php关于array_multisort多维数组排序的使用说明
php array_unique之后json_encode需要注意
PHP下通过系统信号量加锁方式获取递增序列ID
©2014-2024 dbsqp.com