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> |