Python编写案例:判断一个字符串是否是回文串
发布时间:2023-12-04 15:27:00
回文串是指正反两个方向读都相同的字符串。例如,"madam"、"racecar"和"level"等都是回文串。
下面是一个用Python编写的判断字符串是否为回文串的案例:
def is_palindrome(s):
s = s.lower() # 将字符串全部转换为小写字母
s = ''.join(e for e in s if e.isalnum()) # 过滤掉非字母和非数字的字符
return s == s[::-1] # 判断反转后的字符串与原字符串是否相同
# 测试案例
print(is_palindrome("A man, a plan, a canal, Panama")) # 输出:True
print(is_palindrome("hello world")) # 输出:False
print(is_palindrome("123321")) # 输出:True
print(is_palindrome("102030405060708090807060504030201")) # 输出:True
以上代码中,is_palindrome函数接收一个字符串参数s,并进行如下操作:
1. 将字符串转换为小写字母,这是因为在判断是否是回文串时不区分大小写。
2. 使用列表推导式将字符串中的非字母和非数字的字符过滤掉。这一步是为了排除字符串中的空格、标点符号等对回文串判断的干扰。
3. 使用切片操作s[::-1]将字符串反转,并与原字符串进行比较,如果相同则返回True,否则返回False。
接下来是测试案例,可以看到:
- 对于一个带有标点符号的回文串"A man, a plan, a canal, Panama",经过处理后,仍然是回文串,因此返回True。
- 对于非回文串"hello world",返回False。
- 对于一个只包含数字的回文串"123321",返回True。
- 对于一个很长的数字回文串"102030405060708090807060504030201",返回True。
这个案例可以应用于很多场景,例如判断一个用户输入的字符串是否是回文字符串,或者验证一个密码是否是回文结构等等。
