PHP找出字符串中连续重复次数最多的字符
原创PHP面试过程中经常遇到这类算法题目:
话不多说直接上代码:
//找出字符串中连续重复次数最多字
$str = bbcccychrisQxnnddemdereeeeeffetcsssssssssssssfggdddreggggaggaggaaadddddddddddddaass;
$str_arr = str_split($str);//字符串拆解为数组
$map_arr = array_flip($str_arr);//数组键值反转(反转后会自动去重)
$over_arr = [];//结果数组
foreach ($str_arr as $k => $v) {
if ($k == 0 || $v != $str_arr[$k - 1]) {
$map_arr[$v] = $v;
continue;
}
$map_arr[$v] .= $v;
if (!isset($over_arr[$v]) || strlen($over_arr[$v]) < strlen($map_arr[$v])) {
$over_arr[$v] = $map_arr[$v];
}
}
$result = [];
$max_len = 0;
foreach ($over_arr as $key => $value) {
$str_len = strlen($value);
if ($max_len < $str_len) {
$max_len = $str_len;
$result = [
$key => $str_len
];
}
if ($max_len == $str_len) {
$result[$key] = $str_len;
continue;
}
if ($max_len > $str_len) {
continue;
}
}
var_dump($over_arr,$result);
该处打印结果为:
可以利用函数array_count_values()
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:根据经纬度查询距离并按距离进行排序 下一篇:Linux安装包方式安装nodejs