题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
提示:-2^31 <= x <= 2 ^31 - 1
方法一:思路:回文数是从左往右和从右往左来看数字是一样的,所以左边第一位==右边第一位以此类推。要验证该数是不是回文数我们可以取出每一位数再逆序组成新的数字看原数字和新数字是否相等,相等为回文数,不等不是回文数(负数不是回文数)
class Solution {
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
int result = 0;
int num;
num = x;
while(num > 0){
result = result * 10 + num % 10;//通过逆序增加和原来的数进行比较
num /= 10;
}
return result == x;
}
}
方法二:思路:第一步用字符串来逆序存储数字,第二步将字符串转变成数字,第三步和原来的数字进行比较
Java中加法运算符的妙用当加法的一个操作数为字符串时会进行拼接运算。
class Solution {
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
if(x == 0){
return true;
}
String s = "";
int num = x;
int result;
while(num > 0){
s = s + num % 10;
num /= 10;
}
long news = Long.parseLong(s);//将字符串转为长整型
return news == x;
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------方法三没有提交leetcode.
方法三:
第一步:将输入的整数转为字符串
第二步:用charAt()取出字符串中的字符从过index = 0 下标和indexend = s.length() - 1小标的移动进行比较
/**
* FileName: Palindrome_Number09_Test01
* Author: 86186
* Date: 2022/3/12 8:47
* Description: Palindrome_Number09_Test01
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
package com.cq.Dome;
/**
* 〈一句话功能简述〉<br>
* 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
*回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
*
* @author Hacker
* @create 2022/3/12
* @since 1.0.0
*/
import java.util.Scanner;
public class Palindrome_Number09_Test01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(true){
System.out.println("===《回文数检测小程序》===");
System.out.println("1,验证回文数");
System.out.println("2,退出系统");
System.out.print("请输入你的选择:");
int choice = input.nextInt();
if(choice == 1){
System.out.print("请输入一个数字:");
int number = input.nextInt();
String s = "";
boolean sign = true;
s += number;
for(int i = 0;i < s.length();i ++){
if(s.charAt(i) != s.charAt(s.length() - i - 1)){
System.out.println(number + "不是回文数!!!");
sign = false;
break;
}
}
if(sign){
System.out.println(number + "是回文数!!!!");
}
}else{
System.out.println("退出本系统,欢迎下次使用!!!!");
break;
}
}
}
}