in reply to Re: substrings that consist of repeating characters
in thread substrings that consist of repeating characters
We can use (*SKIP) to avoid that:
my $len = 0; my $best = ""; while ($string =~ /((.)(?:(*SKIP)\2){$len,})/g) { $len = length $1; $best = $1 } print "best: $best\n"
But that is still not completely efficient: the regexp is recompiled at every loop iteration because of $len, so maybe the following simpler code could be faster:
my $best = ""; while ($string =~ /((.)\2+)/g) { $best = $1 if length $1 > length $best } print "best: $best\n"
Or maybe this more convoluted variation:
my $best = ""; $best = $1 while $string =~ /((.)\2*)(*SKIP)(?(?{length $^N <= length +$best})(*FAIL))/g; print "best: $best\n"
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: substrings that consist of repeating characters
by AnomalousMonk (Archbishop) on Sep 29, 2020 at 17:37 UTC | |
by salva (Canon) on Sep 29, 2020 at 20:59 UTC | |
by choroba (Cardinal) on Sep 29, 2020 at 21:20 UTC | |
by salva (Canon) on Sep 30, 2020 at 07:32 UTC |