Pathologically Eclectic Rubbish Lister PerlMonks

### Re: Find duplicate digits

by inman (Curate)
 on Feb 15, 2006 at 15:35 UTC ( #530415=note: print w/replies, xml ) Need Help??

in reply to Find duplicate digits

Canonicalise the data and look for multiples. The grep tests for numbers where there are a number of multiples of which at least one is a pair. This solution works with numbers of any length and can be made to work with triples, quads etc. just by changing the grep test.

The OP didn't make it clear whether a number such as 0101 that has two pairs should be counted. You can always test the number of members of the list returned by the grep.

```while (<DATA>){
print "\$_" if grep {length \$_ == 2} join('', sort split //, \$_) =~
+ /((\d)\2+)/g;
}
__DATA__
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
01511
451411
gives
```0011
0012
0013
0014
451411

Replies are listed 'Best First'.
Re^2: Find duplicate digits
by Anonymous Monk on Feb 15, 2006 at 15:52 UTC
Thanks, inman!

Yes, I would like 1010 to be counted.

I'm finding it hard to understand your grep. Where is the list that it's supposed to work on?

The code is equivalent to
```while (<DATA>)
{
my \$a = join('', sort split //, \$_);
my @a = \$a =~ /((\d)\2+)/g;

print "\$_" if grep {length \$_ == 2} @a;
}

holli, /regexed monk/
Thanks, holli! That really helpful :)

Create A New User
Node Status?
node history
Node Type: note [id://530415]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2019-05-25 13:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Do you enjoy 3D movies?

Results (152 votes). Check out past polls.

Notices?