只是为了确保没有混淆。
我不是在问如何编写常规回文取景器。
我知道这将是一个重复的问题。
我知道要找到你使用的回文
isPalindrome :: (Eq a) => [a] -> Bool
isPalindrome xs = xs == (reverse xs)
对于“madamimadam”,这将成为现实。
我无法弄清楚的是,对于“我是亚当女士”,这个功能会回归真实。
答案 0 :(得分:5)
import Data.Char (isAlphaNum, toLower)
isPalindromeStripped :: String -> Bool
isPalindromeStripped xs = isPalindrome (strip xs)
strip :: String -> String
strip xs = map toLower (filter isAlphaNum xs)
此版本使用strip
首先将"Madam I'm Adam"
转换为"MadamImAdam"
,然后将其降低为"madamimadam"
。