回文数
题目地址:回文数
题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
思路
- 转换成字符串,翻转,看是否和之前字符串相同
- 转换成字符串,设置首尾指针,看首尾指针指向的字符是否相同
- 将整数的每一位保存进
list
,设置首尾指针,看首尾指针是否相同
代码
翻转字符串
def isPalindrome(x):
str_x = str(x)
str_x_reverse = str_x[::-1]
if str_x == str_x_reverse:
return True
else:
return False
首尾遍历字符串
def isPalindrome2(x):
str_x = str(x)
first, last = 0, len(str_x) - 1
flag = True
while first <= last:
if str_x[first] == str_x[last]:
first += 1
last -= 1
else:
flag = False
break
return flag
首尾遍历list
def isPalindrome3(x):
if x < 0:
return False
num_list = []
flag = True
while x:
num_list.append(x % 10)
x //= 10
first, last = 0, len(num_list) - 1
while first <= last:
if num_list[first] == num_list[last]:
first += 1
last -= 1
else:
flag = False
break
return flag
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 changzeyan@foxmail.com