package leetCode;
/**
* @author Xu
* @date 2022/8/14
*
* 判断一个数是不是是回文数,是回文数返回true 不是返回false
*/
public class LeetCodeHuiWen {
/**
* 方法一:将数字转化为字符串的形式
* @param x
* @return
*/
public static boolean isPalindrome1(int x) {
if (x < 0) {
return false;
}
String str = x + "";
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left++) != str.charAt(right--)) {
return false;
}
}
return true;
}
/**
* 运用数字反转的思想
* @param x
* @return
*/
public static boolean isPalindrome2(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int revertedNumber = 0;
while (x > revertedNumber) {
revertedNumber = revertedNumber * 10 + x % 10;
x /= 10;
}
return x == revertedNumber || x==revertedNumber/10;
}
public static void main(String[] args) {
boolean palindrome = LeetCodeHuiWen.isPalindrome1(1221);
System.out.println(palindrome);
boolean palindrome2 = LeetCodeHuiWen.isPalindrome2(1221);
System.out.println(palindrome2);
}
}
回文数【LeetCode练习题】
最新推荐文章于 2025-05-23 21:56:27 发布