zoukankan      html  css  js  c++  java
  • [leetcode]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

    题意:

    给定一个10进制整数,翻转它。

    Solution1: directly do the simulation

    Two tricky parts to be handled:

    (1) overflow :  32-bit signed integer range: [−231,  231 − 1],  whihc means [−2,147,483,648  2,147,483,647].  What if input is 2,147,483,647, after reversing, it will be 7,463,847,412.

    (2) negative numbers: for each iteration, we do multiplication or division with a position number -- 10 , which means if sign is '-' , the sign will be kept all the time.

    code:

     1 /*
     2   Time Complexity:  O(log(n))  coz we just travese half part of original input
     3   Space Complexity: O(1) 
     4 */
     5 class Solution {
     6     public int reverse(int input) {
     7         long sum = 0; 
     8         while(input !=0){
     9             sum = sum*10 + input %10;
    10             input = input /10;
    11             
    12             if(sum > Integer.MAX_VALUE || sum < Integer.MIN_VALUE){
    13                 return 0;  // returns 0 when the reversed integer overflows    
    14             }
    15         }  
    16         return (int)sum;
    17     }
    18 }
  • 相关阅读:
    django 中 null=True 和 blank=True的区别!
    利用js代码屏蔽f12,右键,粘贴,复制,剪切,选中,操作!!秀!秀!秀!
    jupyter notebook快速入门教程
    锁相关
    事务相关
    索引
    体系结构
    数据类型
    字符集
    部署规范
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/10652711.html
Copyright © 2011-2022 走看看