编程实现,输入一个字符串,判断它是否是“回文串”。所谓“回文串”是指一个字符串的第一位与最后一位相同,第二位与倒数第二位相同。例如:“159951”、“19891”是回文串,而“2011”不是。 要
时间: 2024-09-10 12:12:45 浏览: 56
在编程中,我们可以采用双指针的方法来判断一个字符串是否是回文串。基本思路是从两端开始比较字符,如果发现不相等,则说明该字符串不是回文串;如果一直比较到中间位置所有字符都相等,则它是回文串。以下是Python语言的一个简单示例:
```python
def is_palindrome(s):
# 将字符串转换为小写并移除空格
s = ''.join(c for c in s.lower() if c.isalnum())
# 初始化两个指针,一个从头开始,一个从尾部结束
left, right = 0, len(s) - 1
while left < right:
# 如果左右指针指向的字符不相等,则返回False
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
```
在这个函数中,我们首先处理字符串,忽略非字母数字字符,然后通过while循环,只要两指针指向的字符相等就继续检查,直到它们相遇或者交叉。
阅读全文