美文网首页程序人生程序员我爱编程
LeetCode习题解析——Palindrome Number

LeetCode习题解析——Palindrome Number

作者: Kindem | 来源:发表于2018-04-07 02:40 被阅读6次

    发布自Kindem的博客,欢迎大家转载,但是要注意注明出处

    问题

    判断一个整数是否为回文数,不能使用辅助空间

    一些提示:
    负整数可以是回文数吗?(例如 -1)

    如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。

    你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?

    本题有一种比较通用的解决方式。

    解答

    解题思路:

    • 负整数肯定不是回文数
    • 0一定是回文数
    • 正整数中判断是不是回文数,只需要求出其颠倒过来的数,并看两者是不是相等,相等则是回文数,否则则不是

    java代码:

    public class Solution {
        public boolean isPalindrome(int x) {
            // 如果x是负整数
            if (x < 0) return false;
            // 如果x是0
            else if (x == 0) return true;
            else {
                int backup = x;
                int y = 0;
                while (x != 0) {
                    y = y * 10 + x % 10;
                    x = x / 10;
                }
                return (y == backup);
            }
        }
    }
    

    相关文章

      网友评论

      本文标题:LeetCode习题解析——Palindrome Number

      本文链接:https://www.haomeiwen.com/subject/reyehftx.html