一个s位数,判断它是不是回文数。
时间: 2024-02-01 19:15:10 浏览: 25
一个数字是回文数,当且仅当将其数字翻转后得到的数和原数相同。比如121是回文数,而123不是回文数。
下面是一个判断回文数的简单算法:
1. 将数字转化为字符串
2. 双指针法,一个指针指向字符串的开头,一个指针指向字符串的结尾
3. 每次比较两个指针所指的字符是否相同,若不同则不是回文数,否则继续比较直到双指针相遇
下面是Python代码实现:
```python
def isPalindrome(x: int) -> bool:
s = str(x)
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
```
可以看出,时间复杂度为O(n),空间复杂度为O(n)。
相关问题
Python一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
可以将该数转换为字符串,然后判断字符串是否与它的逆序字符串相等,若相等则说明是回文数,否则不是。
下面是示例代码:
```python
num = int(input("请输入一个5位数:"))
s = str(num)
if s == s[::-1]:
print("它是回文数")
else:
print("它不是回文数")
```
示例输出:
```
请输入一个5位数:12321
它是回文数
```
python判断4位回文数
以下是一个Python程序,用于判断4位回文数:
```
for i in range(1000,10000):
s = str(i)
if s == s[::-1]:
print(i)
```
解释:
- `range(1000,10000)` 生成4位数的范围。
- `s = str(i)` 将数字转换为字符串。
- `s[::-1]` 将字符串反转。
- `if s == s[::-1]` 判断字符串是否与反转后的字符串相等。
- 如果相等,就打印该数。