gpt4 book ai didi

php - 计算字符串中特定相同字符的连续出现次数 - PHP

转载 作者:行者123 更新时间:2023-12-02 17:36:05 25 4
gpt4 key购买 nike

我正在尝试计算一些“连胜”,特别是连续输赢的最高次数,以及没有赢球、没有输球的比赛中出现的次数最多的比赛。

我有一个看起来像这样的字符串; 'WWWDDWWWLLWLLLL'

为此我需要能够返回:

  • W 字符的最长连续运行(然后我将复制 L)
  • 没有 W 字符的最长连续运行(然后我将复制 L)

我已经找到并调整了以下将通过我的数组并告诉我最长序列的内容,但我似乎无法调整它以满足上述标准。

非常感谢所有帮助和学习:)

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

最佳答案

您可以使用正则表达式来检测相同字符的序列:

$string = 'WWWDDWWWLLWLLLL';
// The regex matches any character -> . in a capture group ()
// plus as much identical characters as possible following it -> \1+
$pattern = '/(.)\1+/';

preg_match_all($pattern, $string, $m);
// sort by their length
usort($m[0], function($a, $b) {
return (strlen($a) < strlen($b)) ? 1 : -1;
});

echo "Longest sequence: " . $m[0][0] . PHP_EOL;

关于php - 计算字符串中特定相同字符的连续出现次数 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26776170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com