设计一个算法,判断输入的字符串是否为回文串。 说明:如果一个字符串从左往右和从右往左是一样的,则称该字符串为回文串。
时间: 2024-09-20 09:10:12 浏览: 44
aba.rar_ABA_判断以@为结束符的字符串是否_回文序列
设计一个判断字符串是否为回文串的简单算法可以分为两步:
1. **反转字符串**:
首先创建一个辅助函数,将输入的字符串反转。这可以通过双指针法完成,从字符串两端开始向中间移动,并比较对应的字符是否相等。
2. **比较原串和反转串**:
创建一个主函数,在这个函数中,我们首先检查原始字符串(str)与它的反转字符串(reverse_str)是否完全相等。如果两者相等,那么原始字符串就是回文串;如果不等,就不是回文串。
以下是一个 Python 语言的示例实现:
```python
def is_palindrome(s):
# 双指针法反转字符串
def reverse_string(s, start=0, end=None):
if end is None:
end = len(s) - 1
while start < end:
s[start], s[end] = s[end], s[start]
start += 1
end -= 1
return s
# 检查原串和反转串是否相等
reverse_s = reverse_string(s)
return s == reverse_s
# 测试函数
input_str = input("请输入字符串:")
if is_palindrome(input_str):
print(f"{input_str} 是回文串")
else:
print(f"{input_str} 不是回文串")
阅读全文