zoukankan      html  css  js  c++  java
  • 7. Reverse Integer

    Given a 32-bit signed integer, reverse digits of an integer.

    Example 1:

    Input: 123
    Output: 321
    

    Example 2:

    Input: -123
    Output: -321
    

    Example 3:

    Input: 120
    Output: 21
    

    Note:
    Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.



    牛人答案1:
    public int reverse(int x) { int result = 0; while (x != 0) { int tail = x % 10; int newResult = result * 10 + tail; if ((newResult - tail) / 10 != result) { return 0; } result = newResult; x = x / 10; } return result; }
    答案2:
    class Solution {
        public int reverse(int x) {
            int res = 0;
            
            while(x != 0){
                if(Math.abs(res) > Integer.MAX_VALUE / 10) return 0;
                res = res * 10 + x % 10;
                x /= 10;
            }
            return res;
        }
    }
    Python3:
    class Solution:
        def reverse(self, x: int) -> int:
            s = (x > 0) - (x < 0) # True - False = 1, False - True = -1
            r = int(str(x*s)[::-1]) #[::-1] means reverse. Firstly convert number to string and reverse, then cast back to int. While casting to integer, if there's prefix '0', the casting can still go through and cut '0'.
            return s*r * (r < 2**31)    #Number * True = Number * 1, * False = * 0

    https://stackoverflow.com/questions/509211/understanding-slice-notation

    Slice notation.


     
  • 相关阅读:
    MongoDB 基础API使用
    MongoDB -- JAVA基本API操作
    Docker数据管理
    Docker容器的简单使用
    Docker
    Centos 7.3 镜像制作
    Fuel部署OpenStack
    Fuel
    Ceph添加、删除osd及故障硬盘更换
    ceph常用命令
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/10135245.html
Copyright © 2011-2022 走看看