如何在php字符串中实现这一点,以bbbvvzzxxc=>;3v4v2z2xc
如何使用php实现php字符计数: 输入:BBBVVVZXXC 输出:3b4v2z2xc 我尝试以下代码:如何在php字符串中实现这一点,以bbbvvzzxxc=>;3v4v2z2xc,php,Php,如何使用php实现php字符计数: 输入:BBBVVVZXXC 输出:3b4v2z2xc 我尝试以下代码: $str = "aabbbccaaaac"; $arr1 = str_split($str); $count=1; foreach($arr1 as $key=>$char) { if($key==0){ $pre=$char; } if($pre==$char){ $count++; }
$str = "aabbbccaaaac";
$arr1 = str_split($str);
$count=1;
foreach($arr1 as $key=>$char) {
if($key==0){
$pre=$char;
}
if($pre==$char){
$count++;
} else{
$count=1;
$pre=$char;
}
echo $pre.'---'.$char.'__';
if($pre != $char){
echo $char. $count ;
} else {
// echo $char;
}
}
但不起作用:
设置字符计数很简单您是想用此代码压缩字符串,然后再对其进行解压缩?还是只是一个练习脚本?为什么它是
3v
而不是3b
?这称为“运行长度编码”。试着用谷歌搜索,“不工作”有点宽泛——你试过调试这个问题吗?这看起来是学习一些测试驱动开发的一个很好的练习
$str = "aabbbccaaaac";
$arr1 = str_split($str);
$count=0;
$pre = '';
$result = ''; // our result string
foreach($arr1 as $char){
if($char == $pre){
$count++;
}else{
if($count > 0){ // To check whether it was the first iteration
$result .= $count.$pre;
}
$count = 1;
$pre = $char;
}
}
$result .= $count.$pre; // For last iteration
echo $result;