题目的主要信息:

  • 输入的五位数字是回文是则返回true,否则返回false

具体做法:

我们先用String类的valueOf方法将int型数字转变成字符串,然后从字符串首尾开始往中间遍历,比较遍历到的字符是否相等,一旦有不等则不是回文数,否则全部遍历完以后就是回文数。

alt

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        Main main = new Main();
        int number = console.nextInt();
        System.out.println(main.palindromeNumber(number));
    }
    public Boolean palindromeNumber(int number){
        String s = String.valueOf(number); //数字转成字符串
        int left = 0;
        int right = s.length() - 1;
        while(left < right){ //首尾依次比较
            if(s.charAt(left) != s.charAt(right))
                return false;
            left++; //向中间缩进
            right--;
        }
        return true;
    }
}

复杂度分析:

  • 时间复杂度:O(1)O(1),5位数,字符串长度只有5,属于常数时间
  • 空间复杂度:O(1)O(1),长度为5的字符串也是常数空间