题目:判断一个整数是否是回文数。回文数是指正序和倒序读都是一样的整数。
    例:121->True -121->False 10->False

    题解:
    一、反转字符串

    1. class Solution(object):
    2. def isPalindrome(self, x):
    3. return str(x)==str(x)[::-1]
    4. 作者:wang_ni_ma
    5. 链接:https://leetcode-cn.com/problems/palindrome-number/solution/chao-xiang-xi-tu-jie-san-chong-jie-fa-9-hui-wen-sh/
    6. 来源:力扣(LeetCode
    7. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    知识点:
    字符串反转和等间隔抽取

    1. x='1234321'

    与list反转一样,当作list处理即可,没什么好多说的。
    例:列

    1. x[::-1]='1234321'
    2. x[::-2]='1331'

    注:列表反转本质上仍然是从list中按固定间隔抽取,只是起始位置和步长都设为-1所以反着取
    例:倒序取值

    1. x[1::-1]='21'
    2. x[0::-1]='1'

    例:对某个索引之后的切片进行倒序取值

    1. x[:pivot:step]
    1. x[:0:-1]='123432'
    2. x[:0:-2]='133'
    3. x[:0:-3]='14'
    4. x[:1:-1]='12343'

    **

    二、求模法

    1. class Solution(object):
    2. def isPalindrome(self, x):
    3. if x<0:
    4. return False
    5. ans = 0
    6. old = x
    7. while x>0:
    8. tmp = x%10
    9. ans = ans*10 + tmp
    10. x //= 10
    11. return ans==old
    12. 作者:wang_ni_ma
    13. 链接:https://leetcode-cn.com/problems/palindrome-number/solution/chao-xiang-xi-tu-jie-san-chong-jie-fa-9-hui-wen-sh/
    14. 来源:力扣(LeetCode
    15. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    知识点:

    上述过程等价于数字依次从栈1234321中弹出,再放入一个新栈中,实现了反转的效果。

    三、优化解

    class Solution(object):
        def isPalindrome(self, x):
            if x<0 or (x%10==0 and x!=0):
                return False
            ans = 0
            while x>ans:
                ans = ans*10 + x%10
                x //= 10
            return x==ans or x==(ans//10)
    
    作者:wang_ni_ma
    链接:https://leetcode-cn.com/problems/palindrome-number/solution/chao-xiang-xi-tu-jie-san-chong-jie-fa-9-hui-wen-sh/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    

    比较巧妙的解法,利用了回文的对称性,即首尾两半正好相反。但是需要区分数字长度为奇偶的情况:
    return x==ans对应长度为偶数 return x==(ans//10)对应长度为奇数。
    这种思路发现了数据中更强的属性,虽然需要分类讨论以及考虑边界条件,但也值得学习。