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

Re: merging strings (xor at char level?)

by moritz (Cardinal)
on Jul 03, 2014 at 08:09 UTC ( #1092120=note: print w/ replies, xml ) Need Help??


in reply to merging strings (xor at char level?)

Instead of going through the string(s) one character at a time, you could split the second string into whitespace and non-whitespace parts, and then apply them blockwise. That way you have far fewer iterations and operations to do.

use 5.014; use strict; use warnings; my $str1 = "12345 ABC 987 MNO"; my $str2 = " CDE"; my $pos = 0; my $res = ''; for my $chunk (split /([^ ]+)/, $str2) { if (substr($chunk, 0, 1) eq ' ') { $res .= substr $str1, $pos, length $chunk; } else { $res .= $chunk; } } continue { $pos += length $chunk; } if ($pos < length $str1) { $res .= substr $str1, $pos; } say $res;

If you really want it to be fast and correct, provide us some test cases (Test::Simple or Test::More to the rescue!) and some Benchmarks into which we can plug our solutions.


Comment on Re: merging strings (xor at char level?)
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2015-07-31 23:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (282 votes), past polls