node.js - 求php判斷幾連數的的代碼思路。

來源:互聯網
上載者:User
關鍵字 php node.js html5 photoshop
假如輸入一個數222246787
計算出來是4連號
假如輸入一個數342222267
計算出來是5連號
.......

求代碼思路

回複內容:

假如輸入一個數222246787
計算出來是4連號
假如輸入一個數342222267
計算出來是5連號
.......

求代碼思路

用正則也可以處理,只需要三行代碼

function test($num){  preg_match_all("/(\d)\\1+/",$num,$match);  rsort($match[0],SORT_NUMERIC);  return strlen($match[0][0])?:1;}echo test("222246787");// 4echo test(342222267); // 5

把輸入的數當作字串處理,用一個數字記錄最大的連數(maxCount),初始值為0,一個記錄當前的連數(count)
從下標為1的字元開始,如果當前字元等於它的前一個那麼count++,如果不相等count=1
然後maxCount=max(maxCount,count)

1- 設當前號碼是 currentNumber = false;
2- 設當前號碼連續出現次數是 currentNumberTimes = 1;
3- 設最大連續出現次數是 maxTimes = 0;
4- 設最大連續出現次數對應的數字是 maxTimesNumber = false;
5- 將數字轉為字串,順序讀取每一位,該位的值存入變數 n
6- 將 n 和 currentNumber對比,如果一致 currentNumberTimes ++,否則:
6.1 用currentNumberTimes和maxTimes對比,如果大於maxTimes, maxTimes = currentNumberTimes; maxTimesNumber = currentNumber
6.2 currentNumber = n,currentNumberTimes = 1
7- maxTimesNumber為所求數字, maxTimes為連續出現的次數
註:如果出現相同長度的連續數字,取值為第一個,如 111222,maxTimesNumber = 1, maxTimes = 3

$number = '43124321333334124233343223900';$currentNumber = false;$currentNumberTimes = 1;$maxTimes = 0;$maxTimesNumber = false;for ($i = 0, $l = strlen($number); $i < $l; $i ++ ) {    $n = $number[$i];    if ($n === $currentNumber) {        $currentNumberTimes ++;    } else {        if ($currentNumberTimes > $maxTimes) {            $maxTimes = $currentNumberTimes;            $maxTimesNumber = $currentNumber;        }        $currentNumberTimes = 1;        $currentNumber = $n;    }}echo "數字{$maxTimesNumber}連續出現了{$maxTimes}次。\n";//數字3連續出現了5次。
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.