使用Haskell编写一个函数来判断一个字符串是否是回文。
发布时间:2023-12-10 08:46:39
下面是使用Haskell编写的一个函数,用于判断一个字符串是否是回文。
isPalindrome :: String -> Bool isPalindrome str = str == reverse str
这个函数接受一个字符串作为参数,并通过比较字符串与其反转后的结果,判断其是否是回文。如果字符串与其反转后的结果相等,则返回True,否则返回False。
下面是一些使用例子:
isPalindrome "hello" -- False isPalindrome "level" -- True isPalindrome "racecar" -- True isPalindrome "A man a plan a canal Panama" -- False isPalindrome "Madam, in Eden I'm Adam" -- False isPalindrome "Go hang a salami I'm a lasagna hog." -- True
在上述例子中, 个字符串"hello"不是回文,第二个字符串"level"是回文,第三个字符串"racecar"也是回文。但是第四个字符串"A man a plan a canal Panama"和第五个字符串"Madam, in Eden I'm Adam"虽然内容一样,但是由于大小写字母和标点符号的差异,不是回文。最后一个字符串"Go hang a salami I'm a lasagna hog."是回文,它忽略了空格和标点符号,并且大小写不敏感。
这个函数可以通过使用map toLower来使其对大小写不敏感。示例:
import Data.Char (toLower) isPalindrome :: String -> Bool isPalindrome str = modifiedStr == reverse modifiedStr where modifiedStr = map toLower str
这样修改后的函数将忽略字符串中的大小写,判断其是否是回文。
这是一个基本的回文判断的函数,可以根据需要进行进一步的扩展和优化。
