php 经典案例中的lookandsay
2017-08-15 14:00
246 查看
比如:
第一个数字是: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;
}
第一个数字是: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;
}
相关文章推荐
- PHP look and say 序列
- PHP编程最快明白 by www.kuphp.com 案例实战zencart1.38a支付模块简化Fast and Easy Checkout配置
- PHP经典项目案例-(一)博客管理系统2
- poj--3438--LOOK and SAY
- Sicily 1491 Look and Say
- 互联网业界经典 经典业务 经典需求 经典分析 经典方案 经典代码 经典呈现 经典片段 PHP经典案例
- PHP经典项目案例-(一)博客管理系统5
- PHP文件操作的经典案例
- POJ 3438 Look and Say
- PHP经典项目案例-(一)博客管理系统4
- POJ3438 ZOJ2886 UVALive3822 Look and Say【数列+水题】
- POJ3438-Look and Say
- php经典案例,你就是高手
- POJ 3438 Look and Say G++
- ZOJ 2886 Look and Say
- Look and Say-3438
- POJ 3438 Look and Say(水题)
- PHP经典项目案例-(一)博客管理系统1
- HOJ 2603 Look and Say