【Python】 回文数的四种解法

回文数就是指整数倒过来和原整数相等。

1
2
3
4
Example 1:
  
Input: 121
Output: true
1
2
3
4
5
Example 2:
  
Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
1
2
3
4
5
Example 3:
  
Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

1:整数转字符串,通过下标对比确定该整数是否为回文数

1
2
3
4
5
str_x = str(x)
for i in range(0,int(len(str_x)/2)):
  if str_x[i] != str_x[-i-1]:
    return False
return True

2:字符串切片操作,str[index:index:step],中括号里面分别为:字符起点、终点和步长

1
2
str_x = str(x)
return str_x == str_x[::-1]

3:数学计算的方法,对比反转整数的值

1
2
3
4
5
6
7
8
if x<0:
  return False
temp_x = x;
palindromeNum = 0
while temp_x != 0:
  palindromeNum = palindromeNum*10 + temp_x%10
  temp_x /= 10
return palindromeNum == x

4:整数转字符串,反转字符串,对比反转后字符串与原字符串是否相等

1
2
3
4
5
str_x = str(x)
str_y = ""
for i in str_x:
  str_y = i + str_y
return str_y == str_x
posted @ 2024-02-25 11:49  陈晓猛  阅读(213)  评论(0编辑  收藏  举报