回文数
作者:互联网
回文数
一、题目描述
回文数就指如:12321、121等数字,将此类的数字倒着排序后与原数字相等。
点击查看代码
输入: int x = 121;
输出:true;
输入:int = 123;
输出:false;
二、解题思路
1、字符反转
这里就是将字符想办法反转过来,然后与原来的相比较科得出结果。
思考:如何将所给整数反转?
官方所给思路就是将 revertedNum(反转后整数),将x%10作为revertedNum的最后一位,"revertedNum = revertedNum*10 + x%10",然后将x进行调整,x = x/10,这样就可以获取倒数第二位,这样依次类推就可以将整数给反转。
注意:这里不用将全部数字反转,只需要将其一半数字反转即可。如:“1221”只需将后两位反转令“12 == 12”,即可判断是非为回文数。这里会出现奇数情况,如:“12321”,有一个中位数的情况,这是不影响,只需将其中位数一位忽略掉即可。使用returnNumber/10。
代码实现:
点击查看代码
public boolean isPalindrome(int x) {
if(x == 0){
return true;
}
//排除负数和最后一个是零的情况
if(x%10 == 0 || x <0){
return false;
}
//前半部分
int returnNumber = 0;
//后半部分
int Number2= 0;
while( x > returnNumber){
Number2 = x % 10;
returnNumber = returnNumber*10 + Number2;
x = x/10;
}
//最终判断前半部分是否等于后半部分
if(x==returnNumber || x == public boolean isPalindrome(int x) {
if(x == 0){
return true;
}
if(x%10 == 0 || x <0){
return false;
}
2、转换为字符串
将整数转换为字符串倒序后再与原来字符串比较。Java固有的方法。
点击查看代码
public boolean isPalindrome(int x) {
String a = "";
StringBuffer stringBuff = new StringBuffer(x+"");
a = stringBuff.reverse().toString();
if(a.equals(x+"") ){
return true;
}else{
return false;
}
}
标签:10,return,int,反转,returnNumber,revertedNum,回文 来源: https://www.cnblogs.com/zjjtt/p/16476159.html