编写函数,接收一个字符串作为参数,判断该字符串是否为回文,如果是则返回true ,否则返回false 。不允许使用切片
时间: 2024-09-26 21:11:22 浏览: 44
python简单算法04:判断一个字符串是否为回文串的排列之一
编写一个函数来检查字符串是否为回文,可以采用双指针法,从字符串的两端向中间遍历,逐个比较字符是否相等。以下是Python语言的一个示例:
```python
def is_palindrome(s):
# 将所有字符转换为小写并移除空格
s = ''.join(c.lower() for c in s if c.isalnum())
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
# 示例
print(is_palindrome("A man a plan a canal Panama")) # 输出:True
print(is_palindrome("race a car")) # 输出:False
```
这个函数首先清理输入字符串,只保留字母和数字,并统一为小写。然后创建两个指针`left`和`right`,分别指向字符串的开始和结束。每次循环中,如果`left`和`right`指向的字符不相等,则返回`False`;否则将`left`向右移动一位,`right`向左移动一位,直到两者相遇或者交叉。如果整个过程都没有发现不相等的字符,那么就是回文,返回`True`。
阅读全文