回文数
题目描述
判断一个整数是否是回文数。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例子
输入 | 输出 | 解释 |
---|---|---|
121 | true | |
-121 | false | 从左往右:-121, 从右往左:121- |
10 | false | 从左往右:10, 从右往左:01 |
思路
① 负数一定不是回文数, 整数分开两种情况 :
② 只有超过10的数字才需要进行反转
③ 编程实现
package palindromic_number;
/**
* @author Jack
* @date 2019-06-14-20:08
* 回文数
*/
public class Solution {
public static boolean isPalindrome(int x) {
//待反转数字的最后一位
int pop = 0;
//反转后的数字
int reverse = 0;
int number = x;
if (number >= 0 && number <= 9){
return true;
}else if(number < 0){
return false;
}else{
//反转数字
while (number != 0){
//取最低位
pop = number % 10;
reverse = reverse * 10 + pop;
number /= 10;
}
System.out.println(reverse);
System.out.println(x);
return (reverse == x);
}
}
public static void main(String[] args) {
System.out.println(isPalindrome(0));
}
}
很奇怪的是, 似乎leetcode并不能识别 (reverse == x)这种简洁的表达方式, 因为第一次提交的时候报了一个编译错误, 出于强迫症, 我不想再看到错误, 所以非要逼我用下面这种格式, 快吐了.......
if(reverse == x){
return true;
}else{
return false;
}
这道题不算难, 希望你们能和我一起进步!一起加油!我是程序萝, 非常乐意与你们一起交流!
我的CSDN博客地址是 : https://blog.csdn.net/weixin_41949328
最近可能会搬来简书啦 , 因为CSDN没有markdown编辑器, 有点不习惯, 哈哈哈哈~~~~~欢迎大家阅读我的博客!