2021-03-01 10:04:44 卢浮宫 版权声明:本文为站长原创文章,转载请写明出处
给你一个整数x,如果x是一个回文整数,则返回true,否则返回false。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
提示:
-231 <= x <= 231 - 1
进阶:你能不将整数转为字符串来解决这个问题吗?
① 首先负数因为符号的原因肯定不是一个回文数,所以我们可以直接返回false
② 关于数字的每一位的单独处理,我们可以直接在上一篇文章中有过印象
我们只需使用模运算来获取每一个整数位数值来进行先关操作即可。
③ 我们取到每一个的整数位,然后生成一个新的整数与入参的证书进行比对即可
① 我们把x作为一个字符,然后逐次做截取工作。
② 最终我们会拼接处一个新的字符串
③ 两个字符串进行比较即可打出结果
PS:因为是回文,前面等于后面,是不是说就是我们比对一半就可以了呢?
class Solution {
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
int dataVal = x;
int dataRlt = 0;
while (dataVal != 0){
dataRlt = dataRlt * 10 + dataVal % 10;
dataVal = dataVal / 10;
}
return dataRlt == x;
}
}
class Solution {
public boolean isPalindrome(int x) {
if(x < 0){
return false;
}
String str = String.valueOf(x);
int beginIndex = 0;
int endIndex = str.length();
while (beginIndex <= endIndex){
String beginStrTmp = str.substring(beginIndex,beginIndex + 1);
String endStrTmp = str.substring(endIndex - 1, endIndex);
if(beginStrTmp.equals(endStrTmp)){
beginIndex ++;
endIndex --;
}else{
return false;
}
}
return true;
}
}
更多精彩请持续关注:guangmuhua.com