当然,以下是一个用 Python 编写的函数来判断一个字符串是否为回文:
def is_palindrome(s):
"""
判断一个字符串是否为回文
参数:
s -- 输入字符串
返回值:
如果字符串是回文,返回 True;否则返回 False
"""
# 去除字符串中的空格并将其转换为小写
cleaned_str = ''.join(e for e in s if e.isalnum()).lower()
# 比较清理后的字符串与其反转后的字符串
return cleaned_str == cleaned_str[::-1]
# 示例用法
test_str = "A man, a plan, a canal, Panama"
print(f"'{test_str}' 是回文吗? {is_palindrome(test_str)}")
test_str2 = "Hello, World!"
print(f"'{test_str2}' 是回文吗? {is_palindrome(test_str2)}")
函数解释
-
清理字符串:
- 使用列表生成式
''.join(e for e in s if e.isalnum())
去除字符串中的所有非字母数字字符。 - 使用
lower()
方法将字符串转换为小写,确保比较时不区分大小写。
- 使用列表生成式
-
检查回文:
cleaned_str == cleaned_str[::-1]
用于判断清理后的字符串是否等于其反转后的字符串。如果相等,则字符串是回文。
示例输出
'A man, a plan, a canal, Panama' 是回文吗? True
'Hello, World!' 是回文吗? False
这个函数可以处理包含空格、标点符号和不同大小写的字符串,并正确判断它们是否为回文。