回文数
回文数
一、题目描述
回文数就指如: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;
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)