python判断一个字符串是不是回文
时间: 2023-04-26 12:03:36 浏览: 205
回文是指正着读和倒着读都一样的字符串。要判断一个字符串是否为回文,可以使用以下方法:
1. 将字符串反转,然后与原字符串比较是否相等。
2. 从字符串的两端开始,依次比较对应字符是否相等,直到中间位置。
下面是第二种方法的Python代码实现:
```python
def is_palindrome(s):
"""
判断一个字符串是否为回文
"""
n = len(s)
for i in range(n // 2):
if s[i] != s[n - i - 1]:
return False
return True
```
使用示例:
```python
s1 = "abcba"
s2 = "hello"
print(is_palindrome(s1)) # True
print(is_palindrome(s2)) # False
```
相关问题
Python判断一个字符串为回文字符串,至少使用五种方法
在Python中,判断一个字符串是否为回文字符串有多种方法。以下是五种常见的方法:
1. **双指针法**:
```python
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
```
2. **切片反转比较**:
```python
def is_palindrome(s):
return s == s[::-1]
```
3. **使用列表推导式**:
```python
def is_palindrome(s):
return s.lower() == ''.join(sorted(s.lower()))
```
这里先将字符串转为小写并排序,如果排序后的结果与原字符串相等,则是回文。
4. **递归方法**:
```python
def is_palindrome(s):
if len(s) <= 1:
return True
elif s[0] != s[-1]:
return False
else:
return is_palindrome(s[1:-1])
```
5. **使用re模块的match函数**,匹配正则表达式:
```python
import re
def is_palindrome(s):
pattern = r'^[\w\W]*(\b\w+\b)(?:(?<=\b\1\b)[^a-zA-Z0-9])*\b\1$'
match = re.match(pattern, s)
return bool(match)
```
此方法去除非字母数字字符并检查整个字符串是否匹配回文模式。
判断一个字符串是不是回文
以下是两种判断一个字符串是否是回文的方法:
1. 方法一:将字符串翻转,如果翻转后的字符串与原字符串相同,则该字符串是回文。
```python
def is_palindrome(s):
new_s = s[::-1] # 翻转字符串
return s == new_s
# 示例
print(is_palindrome('dad')) # 输出:True
print(is_palindrome('123321')) # 输出:True
print(is_palindrome('12321')) # 输出:True
print(is_palindrome('hello')) # 输出:False
```
2. 方法二:找到字符串的中心点,如果字符串关于中心点对称,则是回文。
```python
def is_palindrome(s):
if len(s) == 1: # 如果字符串只有1个字符,直接返回
return True
middle = len(s) // 2
for i in range(1, middle+1):
if s[middle+i] != s[middle-i]:
return False
return True
# 示例
print(is_palindrome('dad')) # 输出:True
print(is_palindrome('123321')) # 输出:True
print(is_palindrome('12321')) # 输出:True
print(is_palindrome('hello')) # 输出:False
```
阅读全文