/**
* Source : https://oj.leetcode.com/problems/reverse-integer/
*
* Created by lverpeng on 2017/7/4.
*
* Reverse digits of an integer.
*
* Example1: x = 123, return 321
* Example2: x = -123, return -321
*
*
* Have you thought about this?
*
* Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!
*
* > If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
*
* > Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer,
* then the reverse of 1000000003 overflows. How should you handle such cases?
*
* > Throw an exception? Good, but what if throwing an exception is not an option?
* You would then have to re-design the function (ie, add an extra parameter).
*
*/
public class ReverseInteger { /**
* 翻转一个int类型的数,几种特殊情况考虑
* 1. 末尾是零的处理方式:去掉
* 2. 溢出:一种方式注解返回0,一种是当做无符号int输出
*
* 从右至左取出每一位数,然后组成新的数
* 取余,整除的方法
*
* @param num
* @return
*/
public int reverse (int num) {
int temp = 0;
int result = 0;
while (num != 0) {
// 判断溢出
if (result > Integer.MAX_VALUE / 10 || result < Integer.MIN_VALUE / 10) {
// 溢出返回0
return 0;
}
// 最后一位数
temp = num % 10;
result = result * 10 + temp;
// 去除最后一位
num = num / 10;
}
return result;
} /**
* 溢出不返回0,返回翻转后的数,使用long表示
* @param num
* @return
*/
public long reverse1 (int num) {
int temp = 0;
long result = 0;
while (num != 0) {
// 最后一位数
temp = num % 10;
result = result * 10 + temp;
// 去除最后一位
num = num / 10;
}
return result;
} public static void main(String[] args) {
ReverseInteger reverseInteger = new ReverseInteger();
System.out.println(reverseInteger.reverse(123) + " === " + "321");
System.out.println(reverseInteger.reverse(-123) + " === " + "-321");
System.out.println(reverseInteger.reverse(-100) + " === " + "-1");
System.out.println(reverseInteger.reverse(1002) + " === " + "2001");
System.out.println(reverseInteger.reverse(123) + " === " + "321"); System.out.println(reverseInteger.reverse(1463847412) + " === " + "2147483641");
System.out.println(reverseInteger.reverse(2147447412) + " === " + "2147447412");
System.out.println(reverseInteger.reverse(2147447412) + " === " + "2147447412"); // overfow
System.out.println(reverseInteger.reverse(1000000003) + " === " + "0");
System.out.println(reverseInteger.reverse(2147483647) + " === " + "0");
System.out.println(reverseInteger.reverse(-2147483648) + " === " + "0"); System.out.println("");
System.out.println("-------------");
System.out.println(""); //
System.out.println(reverseInteger.reverse1(123) + " === " + "321");
System.out.println(reverseInteger.reverse1(-123) + " === " + "-321");
System.out.println(reverseInteger.reverse1(-100) + " === " + "-1");
System.out.println(reverseInteger.reverse1(1002) + " === " + "2001");
System.out.println(reverseInteger.reverse1(123) + " === " + "321"); //
System.out.println(reverseInteger.reverse1(1463847412) + " === " + "2147483641");
System.out.println(reverseInteger.reverse1(2147447412) + " === " + "2147447412");
System.out.println(reverseInteger.reverse1(2147447412) + " === " + "2147447412"); // overflow
System.out.println(reverseInteger.reverse1(1000000003) + " === " + "3000000001");
System.out.println(reverseInteger.reverse1(2147483647) + " === " + "7463847412");
System.out.println(reverseInteger.reverse1(-2147483648) + " === " + "-8463847412");
}
}

leetcode — reverse-integer的更多相关文章

  1. LeetCode: Reverse Integer 解题报告

    Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...

  2. [LeetCode] Reverse Integer 翻转整数

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to ...

  3. C++ leetcode::Reverse Integer

    第一天上课,数据库老师说对于计算机系的学生,凡是在课本上学到的专业知识都是过时的.深以为然,感觉大学两年半真的不知道学了什么,为未来感到担忧,C++也不敢说是精通,入门还差不多.最近丧的不行,不管怎么 ...

  4. [Leetcode] reverse integer 反转整数

    Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to ...

  5. LeetCode——Reverse Integer(逆置一个整数)

    问题: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return –321   Ha ...

  6. Leetcode: Reverse Integer 正确的思路下-要考虑代码简化

    题目: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Have ...

  7. leetcode:Reverse Integer【Python版】

    1.在进入while之前,保证x是非负的: 2.符号还是专门用flag保存 =================== 3.另一思路:将integer转换成string,然后首位swap,直至中间: cl ...

  8. LeetCode——Reverse Integer

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you ...

  9. [Leetcode]Reverse Integer

      核心思想:原数对10取余数赋值给新数后降一位,再把新数升一位加上下一次原数取余值,直到原数降为0. 解法如下: int reverse(int x) { bool minus = false; ) ...

  10. leetcode reverse integer&&Palindrome Number

    public class Solution { public int reverse(int x) { int ret=0; while(x!=0) { int t=x%10; ret=ret*10+ ...

随机推荐

  1. Spring遇到的问题合集

    2018-09-15 元素 "tx:annotation-driven" 的前缀 "tx" 未绑定. 后来我加了 http://www.springframew ...

  2. centos7通过yum安装JDK1.8

    安装之前先检查一下系统有没有自带open-jdk 命令: rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输入信息表示没有安装. ...

  3. 1.6Eigen中系数运算Reductions, visitors and broadcasting

    Eigen::Matrix2d mat; mat<<,, ,; cout<<"矩阵所有系数之和:"<<mat.sum();//1+2+3+4=1 ...

  4. day30

    作业 #__author : 'liuyang' #date : 2019/4/11 0011 下午 12:36 # 这两天 1.软件开发规范 不写 没法做新作业 #2. 认证+上传 +下载 + 校验 ...

  5. turtle库的学习笔记

    (1)turtle使用pen来绘制图形 pendown()  放下画笔,移动到指定点后继续绘制 penup()   提起画笔,用于另起一个地方绘制时使用 pensize(width)   设置画笔线条 ...

  6. linux关机、重启命令

    1.shutdown -h 10 //计算机将在10分钟后关机,且会显示在登录用户的当前屏幕中 2.shutdown -h now //立即关机 3.shutdown -h 20:25 //系统会在2 ...

  7. Linux 第四天

    1.文件搜索命令 1)locate 在文件资料库中查找文件(需要文件资料库中有,新建的文件查不到,需要手动更新,updatedb.查不到/tmp目录下的文件) 语法:locate 文件名 常用选项: ...

  8. docker学习笔记-安装

    安装docker Ubuntu Docker 安装 Docker 支持以下的 Ubuntu 版本: Ubuntu Precise 12.04 (LTS) Ubuntu Trusty 14.04 (LT ...

  9. youtube-dl 安装和用法

    以windows为例 下载python2最新版本并安装,选择添加到PATH 下载ffmpeg最新版本并解压,在控制面板->高级系统设置->环境变量->PATH里添加解压之后的bin文 ...

  10. gdb调试多进程多线程程序

    一.调试的指令 1.list命令 list linenum 显示程序第linenum行的周围的程序 list function 显示程序名为function的函数的源程序 list 显示当前行后面的源 ...