Look And Say 序列php實現代碼

來源:互聯網
上載者:User

比如:
第一個數字是: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.