回文串Python代码
时间: 2024-05-13 14:12:21 浏览: 54
回文串是指正着读和反着读都一样的字符串。以下是一个简单的Python代码实现回文串的判断:
```
def is_palindrome(s):
"""
判断一个字符串是否是回文串
"""
# 将字符串转为小写并去除空格和标点符号
s = s.lower().replace(" ", "").strip(",.?!")
# 判断是否为回文串
return s == s[::-1]
```
这个函数接受一个字符串参数`s`,并通过将其转换为小写、去除空格和标点符号后,判断其是否与反转后的字符串相等来判断是否为回文串。
相关问题
写出利用两个栈检测回文的python代码
当然可以。我们可以使用两个栈来检测一个字符串是否是回文。这种方法的基本思想是同时遍历输入字符串的一半,并将字符压入两个栈中。如果两个栈顶元素始终相等,则说明是回文;如果不等,则不是。
以下是Python代码实现:
```python
def is_palindrome(s):
stack1 = [] # 左向栈
stack2 = [] # 右向栈
for char in s:
if char != '': # 忽略空格和非字母数字字符
stack1.append(char)
else:
while stack2 and stack2[-1] == char: # 当右向栈非空且顶元素等于左向栈顶元素时,移除右向栈顶元素
stack2.pop()
if not stack2 or stack1[-1] != stack2[-1]: # 如果栈顶元素不匹配,返回False
return False
stack1.pop() # 移除左向栈顶部已比较过的字符
return not stack1 and not stack2 # 如果两个栈都为空,说明是回文
# 测试示例
strings = ["A man, a plan, a canal: Panama", "race a car", "level"]
for string in strings:
print(f"{string} 是回文吗?{is_palindrome(string)}")
```
回文数python编程代码
在Python中,回文数是指正读和反读都一样的数字。以下是一个简单的代码示例,用于检查一个整数是否为回文:
```python
def is_palindrome(n):
# 将输入转换为字符串,因为我们可以直接比较字符串是否相同
str_n = str(n)
# 从两端向中间遍历,如果任何一对字符不相等,则不是回文
left, right = 0, len(str_n) - 1
while left < right:
if str_n[left] != str_n[right]:
return False
left, right = left + 1, right - 1
# 如果所有字符都匹配,返回True
return True
# 示例用法
number = 12321
if is_palindrome(number):
print(f"{number} 是回文数")
else:
print(f"{number} 不是回文数")
阅读全文