in reply to Longest possible run of a single character

For repeats of any length:
my ($count, $word) = &longest_repeat ($str, 4);

sub longest_repeat () {
        my ($seq, $k) = @_;
        my $max_word = "";
        my $max_count = 0;
        for (my $i = 0; $i < length ($seq) - $k; ++$i) {
                my $word = substr ($seq, $i, $k);
                my $count = 0;
                while (substr ($seq, $i + ($count * $k), $k) eq $word) {
                        ++$count; }
                if ($count > $max_count) {
                        $max_count = $count;
                        $max_word = $word; } }
        return ($max_count, $max_word); }
  • Comment on Re: Longest possible run of a single character