个人学习--算法(一)
作者:互联网
前言
记录一些个人的学习情况,如有错误欢迎指正。
题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例:如123321或者12321都是回文数
解法
1.解法一
转字符串去判断
public boolean isPalindrome1(int x){
String str = new StringBuilder(x+"").reverse().toString();
return str.equals(x+"");
}
2.解法二
采用整数的形式去判断
public boolean isPalindrome2(int x){
if(x<0){
return false;
}
int div = 1;
//为了后面取最高位
while(x/div>=10){
div*=10;
}
while(x>0){
int left = x / div;//取最高位
int right = x % 10;//取最低位
if(left!=right) return false;
x=(x%div)/10;//去掉最高位和最低位
div/=100;//除100因为去了两位
}
return true;
}
3.解法三
public boolean isPalindrome3(int x){
if (x < 0 || (x % 10 == 0 && x != 0)) return false;
int reverseNum = 0;
while(x>reverseNum){
reverseNum = reverseNum*10 + x%10;
x /= 10;
}
return x == reverseNum || x== reverseNum/10;//后半部分是奇数的情况
}
标签:reverseNum,10,return,--,学习,int,算法,div,解法 来源: https://blog.csdn.net/njh1147394013/article/details/111540203