Determine if a string is squeezable: Difference between revisions

Content added Content deleted
Line 558: Line 558:
result: <<< --- Hary S Truman >>>, length: 71
result: <<< --- Hary S Truman >>>, length: 71
</pre>
</pre>

=={{header|D}}==
{{trans|C#}}
<lang d>import std.stdio;

void squeezable(string s, char rune) {
writeln("squeeze: '", rune, "'");
writeln("old: <<<", s, ">>>, length = ", s.length);

write("new: <<<");
char last = '\0';
int len = 0;
foreach (c; s) {
if (c != last || c != rune) {
write(c);
len++;
}
last = c;
}
writeln(">>>, length = ", len);

writeln;
}

void main() {
squeezable(``, ' ');
squeezable(`"If I were two-faced, would I be wearing this one?" --- Abraham Lincoln `, '-');
squeezable(`..1111111111111111111111111111111111111111111111111111111111111117777888`, '7');
squeezable(`I never give 'em hell, I just tell the truth, and they think it's hell. `, '.');

string s = ` --- Harry S Truman `;
squeezable(s, ' ');
squeezable(s, '-');
squeezable(s, 'r');
}</lang>
{{out}}
<pre>squeeze: ' '
old: <<<>>>, length = 0
new: <<<>>>, length = 0

squeeze: '-'
old: <<<"If I were two-faced, would I be wearing this one?" --- Abraham Lincoln >>>, length = 72
new: <<<"If I were two-faced, would I be wearing this one?" - Abraham Lincoln >>>, length = 70

squeeze: '7'
old: <<<..1111111111111111111111111111111111111111111111111111111111111117777888>>>, length = 72
new: <<<..1111111111111111111111111111111111111111111111111111111111111117888>>>, length = 69

squeeze: '.'
old: <<<I never give 'em hell, I just tell the truth, and they think it's hell. >>>, length = 72
new: <<<I never give 'em hell, I just tell the truth, and they think it's hell. >>>, length = 72

squeeze: ' '
old: <<< --- Harry S Truman >>>, length = 72
new: <<< --- Harry S Truman >>>, length = 20

squeeze: '-'
old: <<< --- Harry S Truman >>>, length = 72
new: <<< - Harry S Truman >>>, length = 70

squeeze: 'r'
old: <<< --- Harry S Truman >>>, length = 72
new: <<< --- Hary S Truman >>>, length = 71</pre>


=={{header|Factor}}==
=={{header|Factor}}==