1. 程式人生 > >Look And Say 序列 php

Look And Say 序列 php

Look and say 序列,因為每個元素通過檢視前一個元素並說出其中是什麼得來的。例如:檢視第一個元素 1 ,你會說 “一個 1”,所以第二個元素就是 “11”。這就是兩個 1 ,所以第三個元素是 “21”。類似的,這裡有一個 2 和一個 1 ,所以第四個元素是 “1211”,以此類推。

程式碼實現:

function lookAndSay($s) {
    $r = '';              // 定義個返回結果的變數,初始化為空字串
    $m = $s[0];           // $m 表示要統計的字元,初始化為字串的第一個字元
    $n = 1;               // $n 表示已經檢視過 $m 的個數,初始化為 1
for($i = 1; $j = strlen($s); $i < $j; $i++) { if($s[$i] == $m) { // 如果當前的字元和上一個字元相同,統計這個字元的數量加 1 $n++; }else { // 否則,拼接字元 $r .= $n . $m; // 將要查詢的字元設定為當前字元 $m = $s[$i]; // 重置統計字元的個數為 1 $n = 1
; } } // 最後一個數字需要在最後拼接到結果中 return $r . $n . $m; } // 顯示出前 10 個 Look And Say 序列 1 11 21 1211 111221 312211 13112221 1113213211 31131211131221 13211311123113112211