如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串。请编写一个函数判断是否为回文串,同时编写测试代码检验回文串。
时间: 2024-12-10 09:55:17 浏览: 0
可以编写一个名为 `is_palindrome` 的 Python 函数来判断一个字符串是否为回文串。以下是函数的实现以及一些测试代码:
```python
def is_palindrome(s):
"""
判断给定的字符串是否是回文串
参数:
s (str): 需要检测的字符串
返回:
bool: 如果字符串是回文串,则返回 True,否则返回 False
"""
return s == s[::-1] # 判断字符串与其反转是否相等
# 测试代码
test_cases = [
("madam", True), # 正确的回文串
("hello", False), # 非回文串
("A man, a plan, a canal: Panama", True), # 包含标点符号和空格的回文串
("race a car", False), # 删除空格后的回文串:racecar
]
for string, expected_result in test_cases:
result = is_palindrome(string)
print(f"{string} 是回文串吗? {'是' if result else '否'} ({result})")
```
这个 `is_palindrome` 函数通过将字符串 `s` 和它的反转 `s[::-1]` 相比较来判断。如果两者相等,说明它是回文串;如果不等,就不是。
相关问题
如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串。请编写一个函数判断是否为回文串,同时编写测试代码检验回文串
在Python中,你可以创建一个名为`is_palindrome`的函数来判断一个字符串是否是回文串。这里是一个简单的实现:
```python
def is_palindrome(s):
"""
判断输入的字符串s是否为回文串
:param s: 需要判断的字符串
:return: 如果是回文串返回True,否则返回False
"""
# 将字符串转换为小写并去除空格
s = ''.join(ch for ch in s.lower() if ch.isalnum())
# 比较原字符串与其反转是否相同
return s == s[::-1]
# 测试代码
test_cases = ["A man a plan a canal Panama", "race a car", "level"]
for case in test_cases:
print(f"{case} 是回文串吗? {'是' if is_palindrome(case) else '不是'}")
```
上述函数首先将输入的字符串转换为小写并移除非字母和数字字符,这是为了忽略大小写和特殊字符对判断的影响。然后通过比较原字符串和它的反转来确定其是否为回文。
运行上面的测试代码,你会看到每个测试案例的结果。
如果一个字符串从前往后和从后往前读时是- 样的,那么这个字符串就是回文串。请编写- 个函数判断是否为回文串,同时编写测试代码 检验回文串。(提示使用切片,注意列表索引 的使用)
以下是代码示例:
```python
def is_palindrome(s):
return s == s[::-1]
# 测试代码
assert is_palindrome("abcba") == True
assert is_palindrome("abcd") == False
assert is_palindrome("A man a plan a canal Panama") == True # 忽略大小写和空格
```
在上述代码中,函数 `is_palindrome` 接受一个字符串参数 `s`,并返回一个 bool 值,表示该字符串是否为回文串。其中,`s[::-1]` 表示将字符串反转,如果反转后与原字符串相等,则说明该字符串为回文串。
测试代码中,通过 assert 语句进行断言,确保 `is_palindrome` 函数的正确性。
阅读全文