Determine if a string is collapsible: Difference between revisions

Content added Content deleted
No edit summary
Line 645: Line 645:
collapsed: length = 6, string = «««😍😀🙌💃😍🙌»»»
collapsed: length = 6, string = «««😍😀🙌💃😍🙌»»»
</pre>
</pre>
=={{header|Haskell}}==
<lang haskell>
import Text.Printf


main :: IO ()
main = do
mapM_ (\t -> printf "old: %d «««%s»»»\nnew: %d «««%s»»»\n" (length $ fst t) (fst t) (length $ snd t) (snd t)) $ map (\s -> (s, strip s)) input
where input = [ ""
, "The better the 4-wheel drive, the further you'll be from help when ya get stuck!"
, "headmistressship"
, "\"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 "
]
strip s = filter (/='😀') . snd . unzip . filter (\t@(a, b) -> a /= b) $ zip ('😀' : s) (s <> ['😀'])
</lang>
{{out}}
<pre>
old: 0 «««»»»
new: 0 «««»»»
old: 80 «««The better the 4-wheel drive, the further you'll be from help when ya get stuck!»»»
new: 77 «««The beter the 4-whel drive, the further you'l be from help when ya get stuck!»»»
old: 16 «««headmistressship»»»
new: 14 «««headmistreship»»»
old: 72 «««"If I were two-faced, would I be wearing this one?" --- Abraham Lincoln »»»
new: 70 «««"If I were two-faced, would I be wearing this one?" - Abraham Lincoln »»»
old: 72 «««..1111111111111111111111111111111111111111111111111111111111111117777888»»»
new: 4 «««.178»»»
old: 72 «««I never give 'em hell, I just tell the truth, and they think it's hell. »»»
new: 69 «««I never give 'em hel, I just tel the truth, and they think it's hel. »»»
old: 72 ««« --- Harry S Truman »»»
new: 17 ««« - Hary S Truman »»»
</pre>
=={{header|J}}==
=={{header|J}}==
<pre>
<pre>