Leetcode(9)之回文数
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 题目描述: 解题思路: 只要反转后面一半的位数,和前面剩下的一半的数(向上取整)比,如果一样就是回文数。如果这个数是奇数位,比如12321,我们翻转最后3位就是123,前面剩下的两位是12,那么只要确定 123 / 10 == 12 就行了。 注意特殊情况,负数都不可能是回文数,能被10整除且不是0的不可能是回文数 代码: public bool IsPalindrome(int x) { if (x < 0) return false; if (x % 10 == 0 && x != 0) return false; int revertedNum = 0; while (x > revertedNum) { revertedNum = 10 * revertedNum + x % 10; x /= 10; if (x == revertedNum || x / 10 == revertedNum) return true; } return x == revertedNum || x == revertedNum / 10; } 来源: oschina 链接: https://my.oschina.net/u/3860932/blog/3153355