题目描述

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例1:

输入: 121
输出: true

示例2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例3:

输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

思路

1.如果输入是负数,那直接返回false。
2.和整数反转的思路一致,将整数翻转后与原数据比较。

Java代码实现

   public boolean isPalindrome(int x) {
        if(x < 0)
            return false;
        int sum = 0;
        int temp = x;
        while(x != 0){
            int tail = x%10;
            x = x/10;
            sum = sum*10+tail;
        }
        return temp == sum;
    }

Golang代码实现

func isPalindrome(x int) bool {
    if(x < 0){
        return false
    }
    tmp := x
    res := 0
    for x != 0 {
        res = res*10 + x%10
        x = x / 10
    }
    return tmp == res
}