标签:10 return int 反转 returnNumber revertedNum 回文
回文数
一、题目描述
回文数就指如: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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。