有一道经典算法题目就是回文数,要求是出现一串数字,通过倒序的方式生成也能与原来的数字匹配就是回文数,给的数字是整数,int类型,有哪些思考方式。
1.逐个情景思考
这个适合于刚刚开始入门的我。
首先思考反向遍历的话,负数和为空肯定就不行,个位数是可以的。
if x < 0 or x==None:
return False
其次,对比知道,回文数按照一个位置对称,前后都相等, 可以用先将数字转化为字符串类型,这样才可以逐个比对
采用两个指针的方式,选择前面的当两端的数字相等时候,前面的指针向前进一位,后面退一位,逐步向中间靠拢。
i,j=0,len(str(x))
while i <j:
if x[i]==x[j]:
i+=1
j-=1
return True
else:
return Fasle
不过好像运行不了。
2.看到别人提交的答案之后就知道自己有多天真啦。
根据字符串的定义,是可以从后往前遍历的,所以我们只要用[::-1]这个代码就能将前面的
class solution:
def cont(self,x):
res = int(str(abs(x)[::-1])))
return x==res
abs是将x进行取绝对值的,str是将整数转化为字符串,然后进行逆序取值,紧接着在转化为int类型,整个做法一气呵成,