in reply to finding tuples
Is that right?
And then to add to the difficulty, you want to get the largest possible set. I think that is a hard problem. I don't have a solution for you, but I hope I've made your requirements clearer to others.
Update
I have come up with a script that does what I think you want, although it does not skip matches in favor of more optimal ones. It just finds the leftmost tuple until they're all gone. (update again: think it's debugged now) Anyway, it's a start.
#!perl use strict; use warnings; while (<DATA>) { chomp; my ($tuple, @set); print "Starting with $_\n"; while (($tuple) = /((\w)\2\2\2|(\w)(?:\3*)(?!\3)(\w)(?:\4*)(?!\4)(\w +)(?:\5*)(?!\5)(\w))/) { $tuple =~ y///cs; # Only one of any character if (length($tuple) == 1) { $tuple x= 4; } print "Found $tuple!\n"; # Remove tuple for my $char (split //, $tuple) { # If it is the last of its kind, # no more matches across it are possible # I put a space in there, so it won't match \w s/(?<!$char)$char(?!$char)/ / or s/$char//; } print "Next round: $_\n"; } } __DATA__ AAAAADDDDDEFFGMMSSTVVVVV AADDDEEEEFFFFGGMMMMMMMMMMSTV AADEEFFG
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: finding tuples
by Anonymous Monk on Jun 23, 2009 at 19:43 UTC | |
by biohisham (Priest) on Jun 23, 2009 at 19:58 UTC |