思路之一:
1、如何得到最高位和最低位数字? 利用 % 和 / 运算
2、如何去除最高位和最低位数字? 利用 % 和 / 运算
3、循环
4、看代码注释

import java.util.*;
import java.io.*;

public class Main{

    public static void main(String[] args) throws IOException{

        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        int n=Integer.parseInt(bf.readLine());
        if(isHw(n)){
            System.out.print("Yes");
        }else{
            System.out.print("No");
        }
    }

    public static boolean isHw(int n){
        //如果是负数最小值直接返回false
        //负数最小值的绝对值会越界
        if(n==Integer.MIN_VALUE){
            return false;
        }
        if(n>-10&&n<10){
            return true;
        }
        int num =n;
        if(n<0){
            //负数变正数
            num = -n;
        }
        int help = 10;
        //求与num的相同位数的help
        while(num/help>=10){
            help = help*10;
        }

        while(num>0){
            //最高位数字
            int left = num/help ;
            //最低位数字
            int right = num%10;
            if(left!=right){
                return false;
            }
            //去除最高位和最低位后的值
            num = (num%help)/10;
            //help位数减2,保持与num相同的位数
            help = help/100;
        }

        return true;
    }

}