题目
image.png
思路
判断一个给定的数字是否是回文数字。
需要注意的是,不仅奇数会出现回文数字,偶数也可以,2442,2222都是回文数字(将数字倒序排列数值相同)
解决办法:将数字放入一组列表,从首尾两侧逐步匹配,相遇前都能匹配上就是回文数字,未相遇匹配失败则不是。
因为是首尾同步走向中点,所以
时间复杂度:O(2/n) =O(n)
代码实现
def palindrome(self,num):
num = list(str(num))
mid = len(num)//2
forward = 0
backward = len(num)-1
while mid>0:
if num[forward] == num[backward]:
mid = mid-1
forward = forward +1
backward = backward -1
else:
return False
return True