如何获取字符串中具有相同字符的最长序列的长度?

You*_*ung 1 php string count

待指定:

function getLength($str)
{
   //function i need
}
$str1 = 'aabbcccc'; 
$str2 = 'aabbccccaaaaa';
echo getLength($str1); //will get 4
echo getLength($str2); //will get 5
Run Code Online (Sandbox Code Playgroud)

有什么好主意吗?

Vol*_*erK 11

function getLength($str)
{
  if (''===$str) return 0;
  preg_match_all('!(.)\\1*!', $str, $m);
  return max(array_map('strlen', $m[0]));
}
Run Code Online (Sandbox Code Playgroud)

  • 聪明!我赞成你,但我认为如果你解释得更好(有点聪明,所有)我(和其他人)会很感激. (2认同)

Thi*_*ter 9

function getLongestSequence($str)
{
   $sl = strlen($str);
   $longest = 0;
   for($i = 0; $i < $sl; )
   {
       $substr = substr($str, $i);
       $len = strspn($substr, $substr{0});
       if($len > $longest)
           $longest = $len;
       $i += $len;
   }

   return $longest;
}
Run Code Online (Sandbox Code Playgroud)