📅  最后修改于: 2023-12-03 15:11:33.454000             🧑  作者: Mango
本题要求实现一个函数,判断给定字符串是否是回文字符串。
回文字符串的定义:正着读和倒着读一模一样。例如,"level"、"civic"、"racecar" 等都是回文字符串。
现在给定一个字符串,请你编写一个函数,判断该字符串是否是回文字符串。如果是,则返回 true;否则返回 false。
def is_palindrome(s: str) -> bool:
pass
assert is_palindrome("level") == True
assert is_palindrome("civic") == True
assert is_palindrome("racecar") == True
assert is_palindrome("hello") == False
assert is_palindrome("") == True
assert is_palindrome("A man, a plan, a canal: Panama") == True
将字符串反转后比较是否一致即可。需要注意的是,需要先忽略字符串中的所有非字母和数字字符,并将字母转为小写后再比较。
def is_palindrome(s: str) -> bool:
# 将字母转为小写,并忽略非字母和数字字符
s = ''.join(filter(str.isalnum, s.lower()))
# 反转字符串并比较
return s == s[::-1]
代码实现其实很简单,重点是要注意处理字符串中的非字母和数字字符。利用 Python 的内置函数 filter()
和 str.isalnum()
可以轻松实现这个功能。