leetcode — reverse-integer
/**
* 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的更多相关文章
- LeetCode: Reverse Integer 解题报告
Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...
- [LeetCode] Reverse Integer 翻转整数
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to ...
- C++ leetcode::Reverse Integer
第一天上课,数据库老师说对于计算机系的学生,凡是在课本上学到的专业知识都是过时的.深以为然,感觉大学两年半真的不知道学了什么,为未来感到担忧,C++也不敢说是精通,入门还差不多.最近丧的不行,不管怎么 ...
- [Leetcode] reverse integer 反转整数
Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to ...
- LeetCode——Reverse Integer(逆置一个整数)
问题: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return –321 Ha ...
- Leetcode: Reverse Integer 正确的思路下-要考虑代码简化
题目: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Have ...
- leetcode:Reverse Integer【Python版】
1.在进入while之前,保证x是非负的: 2.符号还是专门用flag保存 =================== 3.另一思路:将integer转换成string,然后首位swap,直至中间: cl ...
- LeetCode——Reverse Integer
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you ...
- [Leetcode]Reverse Integer
核心思想:原数对10取余数赋值给新数后降一位,再把新数升一位加上下一次原数取余值,直到原数降为0. 解法如下: int reverse(int x) { bool minus = false; ) ...
- 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+ ...
随机推荐
- org.apache.hadoop.security.AccessControlException
在hdfs集群上,需要向Hdfs写入文件,控制台会输出以下错误信息: Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoo ...
- Vc 检测内存泄漏
启用内存泄漏检测 检测内存泄漏是 C/c + + 调试器和 C 运行时库 (CRT) 的主要工具调试堆函数. 若要启用调试堆的所有函数,在 c + + 程序中,按以下顺序包含以下语句: C++复制 # ...
- @Scheduler与cron
- Jmeter利用CSV Data Set Config 和 _CSVRead函数实现参数化
测试接口时,当请求参数不是固定的,每次请求对应的参数都是不同的,就需要对请求参数进行参数化.我们这里简单介绍一下5个用户与一个用户建立好友关系. 一.测试需求描述 1. 本次测试的接口为http服务端 ...
- /bin/bash: /bin/java: Is a directory 解决
Hadoop执行 mapreduce报错 -- ::, INFO mapreduce.Job: map % reduce % -- ::, INFO mapreduce.Job: Job job_15 ...
- Linux学习--- C语言关键字、数据类型
关键字: sizeof为关键字,并不是函数. 作用:编译器给我们查看内存空间容量的一个工具. eg:int a: printf("the size is %d\n",sizeof ...
- xml配置文件中常见的命名空间解释
1.1schema文档即xml schema document,schema文件的格式是.xsd(xml schema document的缩写xsd). 简单来说:schema就是对xml的进一步约束 ...
- MySQL八、备份和还原
MySQL 八.数据库备份和还原 1.二进制日志相关配置 1)查看使用中的二进制日志文件列表,及大小 SHOW {BINARY | MASTER} LO ...
- TortoiseSVN与TortoiseGit
TortoiseSVN与TortoiseGit 功能:版本控制+备份处理 差异:SVN二段式,没有中间存储点,直接提交后到达了远程存储点:要想对本地的修改进行记录,必须要与SVN服务器进行通讯,无法只 ...
- 谈谈最近的想法和 Thoughtworks 的 Offer
最近笔者一直没有记录博客,原因是因为卷入了面试,离职,谈判,思考等一系列事件中.不过可以先说明一下的是, 笔者最后还是拒绝了 Thoughtworks 的 Offer,继续留在目前的公司. 去年毕业后 ...