计算一个数字的连续出现

时间:2016-01-29 00:13:54

标签: perl

嗨,我有一个输入说" 11234555611"。我想知道列表中有多少连续出现。例如:11,555。我想出了

$val="11234555611";
# Splitting the numbers and putting in an array @strings.
my %count;

foreach my $str (@strings) {
 $count{$str}++;
}

这将给出每个数字的次数。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

需要变量$run来跟踪我们看到的连续字符数:

my $val="11234555611";
my %count;
my $last_char = '';
my $run = 0;

foreach my $char (split //, $val) {
    if ($last_char == $char) {
        $run++;
    } else {
        $run = 1;
    }

    if ($run > $count{$char}) {
        $count{$char} = $run;
    }
    $last_char = $char;
}