美文网首页
整数反转(不用字符串)

整数反转(不用字符串)

作者: 今天也要努力呀y | 来源:发表于2019-10-30 21:02 被阅读0次

    中间的判断条件为是否溢出
    输入: -123
    输出: -321

    class Solution {
        public int reverse(int x) {
            int newnumber = 0;
            while (x!=0) {
                int pop = x % 10;
                x/=10;
                if (newnumber>Integer.MAX_VALUE/10||(newnumber==Integer.MAX_VALUE/10&&pop>7))return 0;
                if (newnumber<Integer.MIN_VALUE/10||(newnumber==Integer.MIN_VALUE/10&&pop<-8))return 0;
                newnumber = newnumber*10+pop;
            }
            return newnumber;
        }
    }
    

    类似的题还有:回文数的判断(如果不让你用字符串)

    输入: -121
    输出: false
    解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

    class Solution {
        public boolean isPalindrome(int x) {
            if (x<0) return false;
            int temp = x;
            int rev = 0;
            while (x!=0){
             int pop = x%10;
             x/=10;
             if (rev>Integer.MAX_VALUE/10||(rev==Integer.MIN_VALUE/10&&pop>7)) return false;
             if (rev<Integer.MIN_VALUE/10||(rev==Integer.MIN_VALUE/10&&pop<-8)) return false;
             rev = rev*10 + pop;
            }
            if (rev==temp){
                return true;
            }
            return false;
        }
    }
    

    相关文章

      网友评论

          本文标题:整数反转(不用字符串)

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