Determine if a string is squeezable: Difference between revisions

Added Perl example
m (promoted draft task to a (full) task.)
(Added Perl example)
Line 651:
««« --- Hary S Truman »»» (length 71).
</pre>
 
=={{header|Perl}}==
<lang perl>use strict;
use warnings;
use Unicode::UCD 'charinfo';
 
for (
['', ' '],
['"If I were two-faced, would I be wearing this one?" --- Abraham Lincoln ', '-'],
['..1111111111111111111111111111111111111111111111111111111111111117777888', '7'],
["I never give 'em hell, I just tell the truth, and they think it's hell. ", '.'],
[' --- Harry S Truman ', ' '],
[' --- Harry S Truman ', '-'],
[' --- Harry S Truman ', 'r']
) {
my($phrase,$char) = @$_;
(my $squeeze = $phrase) =~ s/([$char])\1+/$1/g;
printf "\nOriginal length: %d <<<%s>>>\nSqueezable on \"%s\": %s\nSqueezed length: %d <<<%s>>>\n",
length($phrase), $phrase,
charinfo(ord $char)->{'name'},
$phrase ne $squeeze ? 'True' : 'False',
length($squeeze), $squeeze
}</lang>
{{out}}
<pre>Original length: 0 <<<>>>
Squeezable on "SPACE": False
Squeezed length: 0 <<<>>>
 
Original length: 72 <<<"If I were two-faced, would I be wearing this one?" --- Abraham Lincoln >>>
Squeezable on "HYPHEN-MINUS": True
Squeezed length: 70 <<<"If I were two-faced, would I be wearing this one?" - Abraham Lincoln >>>
 
Original length: 72 <<<..1111111111111111111111111111111111111111111111111111111111111117777888>>>
Squeezable on "DIGIT SEVEN": True
Squeezed length: 69 <<<..1111111111111111111111111111111111111111111111111111111111111117888>>>
 
Original length: 72 <<<I never give 'em hell, I just tell the truth, and they think it's hell. >>>
Squeezable on "FULL STOP": False
Squeezed length: 72 <<<I never give 'em hell, I just tell the truth, and they think it's hell. >>>
 
Original length: 72 <<< --- Harry S Truman >>>
Squeezable on "SPACE": True
Squeezed length: 20 <<< --- Harry S Truman >>>
 
Original length: 72 <<< --- Harry S Truman >>>
Squeezable on "HYPHEN-MINUS": True
Squeezed length: 70 <<< - Harry S Truman >>>
 
Original length: 72 <<< --- Harry S Truman >>>
Squeezable on "LATIN SMALL LETTER R": True
Squeezed length: 71 <<< --- Hary S Truman >>></pre>
 
=={{header|Perl 6}}==
2,392

edits