zoukankan      html  css  js  c++  java
  • 【LeetCode7】Reverse Integer★

    题目描述:

    解题思路:

      反转的方法很简单,重点在于判断溢出的问题,下面给出了两种方法。

    Java代码:

    方法一:

      判断溢出方法:在执行完int newResult=result*10+tail语句后,紧接着进行逆运算result=(newResult-tail)/10,如果出现溢出,那么逆运算后result和newResult必然不相等,反之,如果没有溢出,则逆运算后result=newResult。

     1 public class LeetCode7 {
     2     public static void main(String[] args) {
     3         int x1=123;
     4         System.out.println(x1+"的反转结果是:"+new Solution().reverse(x1));
     5         int x2=1534236469;
     6         System.out.println(x2+"的反转结果是:"+new Solution().reverse(x2));
     7     }
     8 }
     9 class Solution {
    10     public int reverse(int x) {
    11         int result=0;
    12         while(x!=0){
    13             int tail=x%10;
    14             int newResult=result*10+tail;
    15             //判断溢出
    16             if((newResult-tail)/10!=result)
    17                 return 0;
    18             result=newResult;
    19             x=x/10;
    20         }
    21         return result;
    22     }
    23 }

    程序结果:

    方法二:

      判断溢出方法:采用long类型存储翻转后的数,再与 Integer.MAX_VALUE 和 Integer.MIN_VALUE 比较,判断是否溢出。

     1 public class LeetCode7 {
     2     public static void main(String[] args) {
     3         int x1=123;
     4         System.out.println(x1+"的反转结果是:"+new Solution().reverse(x1));
     5         int x2=1534236469;
     6         System.out.println(x2+"的反转结果是:"+new Solution().reverse(x2));
     7     }
     8 }
     9 class Solution {
    10     public int reverse(int x) {
    11         long result=0;
    12         while(x!=0){
    13             int tail=x%10;
    14             long newResult=result*10+tail;
    15             result=newResult;
    16             x=x/10;
    17         }
    18          //根据是否溢出返回结果
    19         return (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE)?0:(int)result;
    20     }
    21 }

    程序结果:

    结论:

      本人比较倾向第一种方法,因为第一种方法不需要借助语言本身的常量值。

  • 相关阅读:
    plsql和tsql常用函数比对
    全面对比T-SQL与PL/SQL
    SQL/T-SQL/PLSQL
    Oracle数据库中的数据出错的解决办法
    2008-03-18 22:58 oracle基础知识小结
    Oracle SQL性能优化
    Oracle存储过程基本语法
    jenkins权限配置不对导致jenkins无法登陆
    jenkins关闭和重启
    Jenkins的安装(最为简单的安装方法)
  • 原文地址:https://www.cnblogs.com/zhangboy/p/6445345.html
Copyright © 2011-2022 走看看