欢迎访问宙启技术站
智能推送

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

这样修改后的函数将忽略字符串中的大小写,判断其是否是回文。

这是一个基本的回文判断的函数,可以根据需要进行进一步的扩展和优化。