import java.util.*;

public class Solution {

public boolean isPalindrome (int x) {
   //1. 负数,不是回文数字,返回false
   //2. 判断首位为0的数字,不合法,返回false
   //3. 个位数都为回文数,返回true。单独判断的目的是因为后面的判断逻辑用到了商值(quo!=0)。
    if(x <0) return false;
    if(x%10==0) return false;
    if(x>=0&&x<10) return true;
    //4. 将整数反转后,判断和原值是否相等。若相等,返回true;否则,返回false。若整数溢出,肯定不是回文数,返回false。
    int mod = 0;//取模值
    int quo = 1; //取商值,初始值值不能为0,是因为后面有quo!=0的判断
    int tmp =0; //定义整数的反转值
    int y=x;
    while(quo!=0){
        quo = y/10;
        mod = y%10;
        tmp  = tmp*10+ mod;
        y=quo;
        System.out.println(tmp);
        if(tmp>Integer.MAX_VALUE||tmp<Integer.MIN_VALUE) return false;
    }
    if(x==tmp) return true;
    else return false;
}

}