用数据结构与算法编写回文游戏代码
时间: 2024-10-21 16:08:46 浏览: 18
回文游戏通常涉及判断给定的一串字符是否形成一个回文字符串。回文是指正读反读都一样的字符串,如 "level"、"madam" 等。下面是一个简单的Python示例,使用了双指针技巧结合栈的数据结构来检查字符串是否是回文:
```python
def is_palindrome(s):
# 将字符串转为小写并移除非字母数字字符
s = ''.join(c for c in s.lower() if c.isalnum())
# 使用两个指针从两端向中间遍历
left, right = 0, len(s) - 1
stack = []
while left < right:
# 如果左指针指向的字符小于右指针,说明不是回文
if s[left] != s[right]:
return False
# 把当前字符压入栈中,然后移动左右指针
stack.append(s[left])
left += 1
right -= 1
# 如果所有字符都已匹配,且只剩下一个或零个元素在栈里,说明是回文
return len(stack) <= 1 or not stack[0]
# 示例用法
s = input("请输入一个字符串:")
if is_palindrome(s):
print("这是一个回文字符串。")
else:
print("这不是一个回文字符串。")
阅读全文