• lintcode :reverse integer 颠倒整数


    题目:

    将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。

    样例

    给定 x = 123,返回 321

    给定 x = -123,返回 -321

    解题:

    直接反转,越界处理好炒蛋

    Java程序:

    public class Solution {
        /**
         * @param n the integer to be reversed
         * @return the reversed integer
         */
        public int reverseInteger(int n) {
            // Write your code here
            int MAX = Integer.MAX_VALUE;
            if(n>=0){
                int res = 0;
                int num = n;
                while(n!=0){
                    if(res>MAX/10) return 0;
                    res =res *10 + n%10;
                    n = n/10;
                }
                return res;
            }else{
                int res = reverseInteger(-n);
                return -res;
            }
            
        }
    }
    View Code

    总耗时: 16030 ms

    Python程序:

     还没好,一直Pending,Python不需要处理越界问题,

    需要处理,上面说的是32位数,最大值是2的32次方,下面程序已经更改,可以AC

    class Solution:
        # @param {int} n the integer to be reversed
        # @return {int} the reversed integer
        def reverseInteger(self, n):
            # Write your code here
            MAX = 2147483647 
            flag = False
            if n<0:
                n = -n
                flag = True
            res = 0
            while n!=0:
                if res>MAX/10: return 0 
                res = res * 10 + n%10;
                n = n/10
            if flag:
                return -res
            else:
                return res
    View Code

    总耗时: 650 ms

  • 相关阅读:
    享元模式(Flyweight)
    策略模式(strategy)
    访问者模式(Visitor)
    适配器模式(Adapter)
    外观模式(Facade)
    代理模式(Proxy)
    ORACLE 表空间扩展方法
    Oracle XML Publisher
    DB.Package procedure Report
    case ... end 语句
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4890196.html
Copyright © 2020-2023  润新知