Reverse Integer
来源:互联网 发布:php 双引号中转义字符 编辑:程序博客网 时间:2024/05/02 02:12
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
题目解析:翻转数字,本题看似简单其实暗藏杀机,主要还是边界问题,输入大数翻转后不溢出
解法一(RunTime Error):数字转字符处理然后再回归数字,利用java自身API从后往前append到新串,但是没有通过大数边界
/*public int reverse(int x) {// 数字转字符处理long result = 0;int flag = 1;// x正负判断StringBuilder sb = new StringBuilder();String temp = String.valueOf(Math.abs(x));if (x < 0)flag = -1;for (int i = temp.length() - 1; i >= 0; i--) {sb.append(temp.charAt(i));}result = Long.valueOf(sb.toString());if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE)return 0;return (int) (result * flag);}*/
解法二(AC):从问题本质入手,将余数扩大10倍然后累加和,不通过字符串和数字互转,最后判断一下是否存在大数溢出即可
public int reverse(int x) { long reverse = 0; //余数按照10倍扩大累加 while(x != 0){ reverse = reverse * 10 + x % 10; if(reverse > Integer.MAX_VALUE || reverse < Integer.MIN_VALUE) return 0; x = x / 10; } return (int)reverse; }
0 0
- Reverse Integer
- Reverse Integer
- Reverse Integer
- reverse integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- Reverse Integer
- reverse Integer
- Reverse Integer
- Reverse integer
- Reverse Integer
- Reverse Integer
- linux下挂载文件系统
- 查看iOS真机日志
- android 设置字体颜色 颜色大全
- Avoiding memory leaks ---- Context Leak 篇
- sprintf函数的说明
- Reverse Integer
- RPG2.0战斗框架学习1
- 优秀的代码 vs. 糟糕的代码
- 黑马程序员——java高新技术——IO其他流对象
- 3070 Fibonacci 矩阵快速幂
- JDK5新特性:枚举(Enum)
- 提高工作效率的TXT转换为PDF方法
- [OpenMP] 怎么在Visual Studio上启用OpenMP
- 比较齐全的运算符正则表达式