[Israel.pm] sliding window on streaming lines
Shlomo Yona
shlomo at cs.haifa.ac.il
Sun Jun 6 00:02:53 PDT 2004
On Sun, 6 Jun 2004, Gaal Yahas wrote:
> The idea I had followed basically gives each combination a number,
> whose every digit is in a different base. :-P
>
> Modulo small details -- perhaps it needs to be zero-based instead of
> one-based as in my previous mail -- I think it's pretty efficient;
> and since we visit each "number" and hence each possible combination,
> it is correct. Is what you mentioned similar to that? I'm not an expert
> in algorithms and yet I get a feeling that there's no need for fancy
> stuff here.
I don't think I understnd you.
Here's an example:
my $lattice = [
{
foo => 1
},
{
moo => 1,
miau => 0,
blah => 0
},
{
bar => 0,
baz => 1
}
];
This lattice represents sevaral possible paths of strings.
Please consider the following regular expression as another
representation of all possible paths:
/foo(?:moo|miau|blah)(?:bar|baz)/
Thing, is -- I don't want to recognize such "paths of
strings", but instead, I want to generate them (and do
something with each such possible path).
What I'm looking for, is an elegant way of doing something
like this:
my @all_possible_paths = get_all_possible_paths($lattice);
foreach my $path (@all_possible_paths) {
# do something with $path;
}
Where I expect @all_possible_paths to look like this (I
don't care about the order of paths but I do care about the
order of strings within each and every path):
@all_possible_paths = (
['foo', 'moo', 'bar'],
['foo', 'moo', 'baz'],
['foo', 'miau', 'bar'],
['foo', 'miau', 'baz'],
['foo', 'blah', 'bar'],
['foo', 'blah', 'baz']
);
(Actually, I'm also interested to know whether the path
contains 1 througout or not, but that's trivial to add
later...)
So -- again -- my problem lies in an elegant way of
producing @all_possible_paths.
Any suggestions?
Thanks.
--
Shlomo Yona
shlomo at cs.haifa.ac.il
http://cs.haifa.ac.il/~shlomo/
More information about the Perl
mailing list