反正有没有使用php重复连续重复段的最大段?

Is there anyway to repeat the biggest segment of continuous segment of repeat using php?

我想输入 "RKKRRRRK" 并尝试得到最大连续段的输出。假设我的输入可能是 "RKKKR" 那么我的程序将显示 'KKK' 是最大的连续段.. 然后它也显示计数是 3..

我已经编写了计算 'R' 值的代码..现在我也想要这个程序...需要帮助任何人帮助我..提前致谢。

这里是代码:-

<?php

    function numberOfR($string1) 
    {

        for($i=0;$i <strlen($string1);$i++)
        {
            if($string1[$i]!='K') 
            {
                $count++;
            }
        }
        return $count;
    }
    $return_value= numberOfR("RKKRK");
    echo "R's count is:";
    echo $return_value;
?>

你可以在这里使用preg_match_all作为

preg_match_all('/(.)+/i','RKKRRRRK',$res);
usort($res[0],function($a,$b){
    return strlen($b) - strlen($a);
});
echo $res[0][0];

不确定我是否理解正确。像这样:

function maxCharSequece($string1) 
{
    $maxSeq = $seq = 0;
    $maxChar = $lastChar = null;

    for( $i = 0; $i < strlen($string1); $i++ )
    {
        $c = $string1[$i];

        if (!$lastChar) $lastChar = $c;

        if ( $lastChar == $c ){
            if ( ++$seq > $maxSeq ) $maxChar = $lastChar;
        }
        else {
            $maxSeq = $seq;
            $seq = 0;
        }
    }

    return $maxChar;
}

您可以使用preg_replace_callback接收所有连续段,select最长

$sq = '';
preg_replace_callback('/(.)+/', 
                      function ($i) use (&$sq) { 
                        if(strlen($i[0]) > strlen($sq)) $sq = $i[0]; 
                      },  $str);    
echo  $sq . " " . strlen($sq);
    <?php
    function getLongetSegment($string) {
        $currentSegmentChar='';
        $currentSegment="";
        $biggestSegment="";
        $current_length=0;
        $biggest_length=0;
        for($i=0;$i<strlen($string);$i++) {
            $char = $string[$i];
                if($char != $currentSegmentChar || $currentSegmentChar == '') {
                    if($current_length >= $biggest_length) {
                        $biggestSegment = $currentSegment;
                        $biggest_length = $current_length;
                    }
                    $currentSegmentChar = $char;
                    $currentSegment = $char;
                    $current_length = 1;
                }
                elseif($currentSegmentChar != '') {
                    $currentSegment .= $char;
                    $current_length++;
                }
        }
        if($current_length >= $biggest_length) {
            $biggestSegment = $currentSegment;
        }
        return array("string" => $biggestSegment,"length" => $biggest_length);
    }   
    print_r(getLongetSegment("RKKRGGG"));
?>

结果:GGG