Determine if a string is squeezable: Difference between revisions

Line 1,445:
ans = ║ --- Hary S Truman ║
</pre>
 
=={{header|Nim}}==
<lang Nim>import unicode, strformat
 
proc squeeze(s: string; ch: Rune) =
echo fmt"Specified character: '{ch}'"
let original = s.toRunes
echo fmt"Original: length = {original.len}, string = «««{s}»»»"
var previous = Rune(0)
var squeezed: seq[Rune]
for rune in original:
if rune != previous:
squeezed.add(rune)
previous = rune
elif rune != ch:
squeezed.add(rune)
echo fmt"Squeezed: length = {squeezed.len}, string = «««{squeezed}»»»"
echo ""
 
 
const Strings = ["",
"\"If I were two-faced, would I be wearing this one?\" --- Abraham Lincoln ",
"..1111111111111111111111111111111111111111111111111111111111111117777888",
"I never give 'em hell, I just tell the truth, and they think it's hell. ",
" --- Harry S Truman ",
"The better the 4-wheel drive, the further you'll be from help when ya get stuck!",
"headmistressship",
"aardvark",
"😍😀🙌💃😍😍😍🙌",]
 
const Chars = [@[Rune(' ')], @[Rune('-')], @[Rune('7')], @[Rune('.')],
@[Rune(' '), Rune('-'), Rune('r')],
@[Rune('e')], @[Rune('s')], @[Rune('a')], "😍".toRunes]
 
 
for i, s in Strings:
for ch in Chars[i]:
s.squeeze(ch)</lang>
 
{{out}}
<pre>Specified character: ' '
Original: length = 0, string = «««»»»
Squeezed: length = 0, string = «««»»»
 
Specified character: '-'
Original: length = 72, string = «««"If I were two-faced, would I be wearing this one?" --- Abraham Lincoln »»»
Squeezed: length = 70, string = «««"If I were two-faced, would I be wearing this one?" - Abraham Lincoln »»»
 
Specified character: '7'
Original: length = 72, string = «««..1111111111111111111111111111111111111111111111111111111111111117777888»»»
Squeezed: length = 69, string = «««..1111111111111111111111111111111111111111111111111111111111111117888»»»
 
Specified character: '.'
Original: length = 72, string = «««I never give 'em hell, I just tell the truth, and they think it's hell. »»»
Squeezed: length = 72, string = «««I never give 'em hell, I just tell the truth, and they think it's hell. »»»
 
Specified character: ' '
Original: length = 72, string = ««« --- Harry S Truman »»»
Squeezed: length = 20, string = ««« --- Harry S Truman »»»
 
Specified character: '-'
Original: length = 72, string = ««« --- Harry S Truman »»»
Squeezed: length = 70, string = ««« - Harry S Truman »»»
 
Specified character: 'r'
Original: length = 72, string = ««« --- Harry S Truman »»»
Squeezed: length = 71, string = ««« --- Hary S Truman »»»
 
Specified character: 'e'
Original: length = 80, string = «««The better the 4-wheel drive, the further you'll be from help when ya get stuck!»»»
Squeezed: length = 79, string = «««The better the 4-whel drive, the further you'll be from help when ya get stuck!»»»
 
Specified character: 's'
Original: length = 16, string = «««headmistressship»»»
Squeezed: length = 14, string = «««headmistreship»»»
 
Specified character: 'a'
Original: length = 8, string = «««aardvark»»»
Squeezed: length = 7, string = «««ardvark»»»
 
Specified character: '😍'
Original: length = 8, string = «««😍😀🙌💃😍😍😍🙌»»»
Squeezed: length = 6, string = «««😍😀🙌💃😍🙌»»»</pre>
 
=={{header|Perl}}==
Anonymous user