Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: summarize similar strings

by harangzsolt33 (Chaplain)
on Dec 28, 2019 at 07:24 UTC ( [id://11110687]=note: print w/replies, xml ) Need Help??


in reply to summarize similar strings

I love problems like this. My solution might not be the most efficient one, but this would be my first attempt:

#!/usr/bin/perl -w use strict; use warnings; my ($Pattern, $c1, $c2) = ''; while( <DATA> ) { /./ or next; chomp; for (my $i = 0; $i < length($_); $i++) { ($c1 = vec($_, $i, 8)) > 32 or next; $c2 = vec($Pattern, $i, 8); $c2 = ($c2 < 33) ? $c1 : $c2; vec($Pattern, $i, 8) = ($c1 == $c2) ? $c1 : 42; } print "\n INPUT = |$_|\nPattern = |$Pattern|\n"; } print "\n\nFINAL RESULT:\n\n $Pattern\n"; __DATA__ /b/c/ a/b/cdx0/m2/b4/r_a_c1_4/w a/b/c/p0/m0/b0/r_a_c1_0/q a/b/c/p0/m0/b0/r_a_c1_1/q a/b/c/p0/m0/b0/r_a_c1_2/q a/b/c/p0/m0/b1/r_a_c1_0/q a/b/c/p0/m0/b1/r_a_c1_1/q a/b/c/p0/m0/b1/r_a_c1_2/q a/b/c/p0/m0/b1/r_a_c1_0/q/g/w/t /q w/b/c/p0/m3/b2/r_a_c d/e0/m2/b

Replies are listed 'Best First'.
Re^2: summarize similar strings
by abhay180 (Sexton) on Dec 28, 2019 at 09:03 UTC
    Thanks a lot. As i explained in later post i needed to summarize only when two strings diff'd in a number like b0/b1 to be summarized as b*; if c0 , then it's a different string. Anyways, the solution posted by tybalt89 seems to be perfect for my problem. Thanks again.
Re^2: summarize similar strings
by Anonymous Monk on Dec 28, 2019 at 17:38 UTC
    my ($Pattern, $c1, $c2) = '';
    FYI the above code only initializes $Pattern to an empty string. To init all 3 vars:
    my ($Pattern, $c1, $c2) = ('') x 3;
      Oh, okay. Well, I only wanted to initialize the first variable there. And I was suspecting that that's what my code does. I wasn't sure though. Thank you for confirming that. I never knew I could initialize all three by doing ('') x 3. Thanks! I always learn something new!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11110687]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2024-04-25 07:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found