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+ ...
随机推荐
- 综合评价模型C++实现
1 综合评价模型建立步骤 综合评价模式是一种对一个或多个系统进行评价的模型.一般分为如下几个步骤: 选取评价指标,指标的选取应该具有独立性和全面性. 得到m×n测量矩阵,每一行表示一个带评价系统(共m ...
- zeromq学习记录(六)C语言示例
考虑到官方的示例c语言是最多的 官方未使用C++语言演示的例子就使用VC编译C语言例子 记录在此 /************************************************** ...
- 分布式协议学习笔记(一) Raft 选举
Raft官网 官方可视化动画1 官方可视化动画2 论文中文翻译 论文英文地址 感觉作为paxos的升级精简版 Raft在设计之初就以容易理解为目标 看完资料 脑海里都有了大概的轮廓. 有了这些详细的资 ...
- django by example 第四章 dashboard处html无法渲染问题
描述: 实现django by example 代码时,第四章 dashboard处html无法渲染问题. 此时报错,NoReverseMatch at /account/login/, Error ...
- pyhton 核心编程 正则表达式习题
方案一 import re #1. 识别下列字符串:“bat,” “bit,” “but,” “hat,” “hit,” 或 “hut” import re def test1(self): bt = ...
- sqoop加载mysql数据库
./bin/sqoop list-databases --connect jdbc:mysql://node-001:3306/ --username root --password hadoop
- LOJ-10102(桥的判断)
题目链接:传送门 思路:找桥就行了,条件是num[v]<low[u],pre!=v; #include<iostream> #include<cstdio> #inclu ...
- JAVA核心问题(一)反射之引言 构造函数
反射,简单来说,就是在运行时获取Class对象的所有属性和方法,无论公有私有.虽然是一个基础问题,在这里还是全面的记录一下,认真对待! 获取构造函数 构造函数大致分为两种,public和非public ...
- JSP的分页技术
在实际应用中,如果从数据库中查询的记录特别的多,甚至超过了显示屏的显示范围,这个时候可将结果进行分页显示. 假设总记录数为intRowCount,每页显示的数量为inPageSize,总页数为intP ...
- WPF实现特殊统计图
效果图: ActiveFunItem.xaml代码: <UserControl x:Class="SunCreate.Vipf.Client.UI.ActiveFunItem" ...