Java每日一算法--给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
Posted lovoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java每日一算法--给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。相关的知识,希望对你有一定的参考价值。
题目:
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101
输出:false
来源:力扣(LeetCode)
解法一:
采用一个临时变量保存x,再用另一个变量result用来保存计算结果
每次遍历时,都将x%10的余数保存,并将这个余数在一个循环中 * 10,
而自变量x则每次取整,
最后将temp与result比较是否一致
public static boolean isPalindrome(int x) {
//保存结果
int result = 0;
//保存最初的值
int temp = x;
//如果x=0时中断循环
while (x != 0){
//保存余数
result = result * 10 + x % 10;
//取整
x = x / 10;
}
return result == temp;
}
解示二:
转化成字符串数组,从两边遍历比较
public static boolean isPalindrome2(int x) {
if (x < 0) {
return false;
}
char[] str = String.valueOf(x).toCharArray();
int left = 0;
int right = str.length - 1;
while (left < right) {
if(str[left] != str[right]){
return false;
}
left ++;
right --;
}
return true;
}
以上是关于Java每日一算法--给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。的主要内容,如果未能解决你的问题,请参考以下文章