LeetCode-day1-(9.回文数)
难度:
简单
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,
121
是回文,而123
不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:flase
从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
解题思路
- 将数转换成字符串:(参考力扣评论区)
- 运用数学方法
转换成字符串
class Solution { //ps:借用评论区老哥评论{api调用大湿}
public boolean isPalindrome(int x) {
//首先所有负数一定不是回文数
if(x < 0) return false;
//将int数转换成可变字符串类
StringBuffer sb = new StringBuffer(String.valueOf(x));
//reverse():将字符串序列反转
//equals():对比两个字符串
return sb.reverse().toString().equals(String.valueOf(x));
}
}
以上操作秒哇!!!
数学计算
大致思路:将一个数,倒着取一遍,将结果与原来的数对比,判断是否是回文数。
class Solution {
public boolean isPalindrome(int x) {
//中间漏了一个零,也是回文数
if (x==0) return true;
//负数和能被10整除都不是
if (x < 0 || x % 10 == 0 ){
return false;
}
//小于十都是
if(x<10){
return true;
}
//倒序记录数
int statrt = 0;
//正序
int end = x;
while(end!=0){
//反转
statrt = statrt *10 + end %10;
//位数减一
end /=10;
}
return statrt == x;
}
}
\
版权属于:Monster_4y
本文链接:https://blog.zmonster.top/68.html
转载时须注明出处及本声明