题目
判断一个整数是否是回文数。回文数是指正序(从左到右)和倒序(从右向左)读都是一样的整数。
解决方案
1.自己的方法
先把负数排除,然后将数字倒序重组,如果和原数相等,判断为回文数,否则不是。
运行时间:309ms
2.反转一半数字
首先,处理一些临界情况。所有负数不可能是回文数,如果数字的最后一位是0,则只有0满足条件,所以排除其他结尾是0的数字。
我们将原始数字除以10,然后给反转后的数字乘上10,所以,当原始数字小于反转后的数字时,就意味着我们已经处理了一半位数的数字。return的部分,偶数数位,就是x==tmp,奇数数位就是x==tmp/10。
运行时间:170ms
复杂度分析:
- 时间复杂度:O(log10(n)),对于每次迭代,我们会将输入除以10,因此时间复杂度为O(log10(n))。
- 空间复杂度:O(1)