判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。、
时间: 2025-01-12 19:54:14 浏览: 105
判断一个整数是否是回文数,可以通过以下步骤实现:
1. **负数不是回文数**:因为负号会导致正序和倒序不一致。
2. **反转整数的一部分**:将整数的一半反转,然后与另一半进行比较。如果两者相等,则该整数是回文数。
以下是具体的实现步骤:
1. 如果数字是负数,则直接返回`false`。
2. 如果数字的最后一位是0,则只有数字是0时才可能是回文数。
3. 反转数字的一半,并与另一半进行比较。
```python
def is_palindrome(x: int) -> bool:
# 负数不是回文数
if x < 0:
return False
# 如果数字的最后一位是0,则只有数字是0时才可能是回文数
if x % 10 == 0 and x != 0:
return False
reverted_number = 0
while x > reverted_number:
reverted_number = reverted_number * 10 + x % 10
x //= 10
# 当数字长度为奇数时,可以通过 reverted_number//10 去除中间的数字
return x == reverted_number or x == reverted_number // 10
# 示例
print(is_palindrome(121)) # 输出: True
print(is_palindrome(-121)) # 输出: False
print(is_palindrome(10)) # 输出: False
```
这个方法的时间复杂度是O(log n),因为每次循环将数字除以10,空间复杂度是O(1),因为只使用了常数级别的额外空间。
阅读全文
相关推荐


















