题目的主要信息:
- 输入的五位数字是回文是则返回true,否则返回false
具体做法:
我们先用String类的valueOf方法将int型数字转变成字符串,然后从字符串首尾开始往中间遍历,比较遍历到的字符是否相等,一旦有不等则不是回文数,否则全部遍历完以后就是回文数。
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;
}
}
复杂度分析:
- 时间复杂度:,5位数,字符串长度只有5,属于常数时间
- 空间复杂度:,长度为5的字符串也是常数空间