ReverseInteger
来源:互联网 发布:centos 7web服务器 编辑:程序博客网 时间:2024/06/05 06:52
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
除了考虑数字的翻转之外,还有溢出的判断。
int 32bit -2147483648~2137383647
1st:
public class Solution { public static int reverse(int x) { if(x>0){ String b = new StringBuilder(String.valueOf(x)).reverse().toString();//将一个string翻转 long l=Long.parseLong(b); if(l<Integer.MAX_VALUE){ int c = Integer.parseInt(b); return c; }else{ return 0; } }else{ long p=Long.parseLong(String.valueOf(x)); if(p<=Integer.MIN_VALUE){ return 0; }else{ String b = new StringBuilder(String.valueOf(Math.abs(x))).reverse().toString(); long l=Long.parseLong(b); if(l<Integer.MAX_VALUE){ int c = Integer.parseInt(b); return -c; }else{ return 0; } } } }}
多次对long的大小的判断。而且stringBuilder也很慢 12ms
用数学的方法,O(n)
2st:
public class Solution { public static int reverse(int x) { long num = 0; //long做翻转 while (x != 0) { num = num * 10 + x % 10; x /= 10; } if (num > Integer.MAX_VALUE || num < Integer.MIN_VALUE) { //判断int范围,溢出判断 return 0; } return (int) num; //再转换成Int } }
运行时间为2ms
类型变换:
int a =Integer.parseInt(string s); //string ->int
long b=(long)a; // int->long
int c=(int)b; // long->int
long d=Long.parseLong(string s); //string->long
0 0
- ReverseInteger
- ReverseInteger
- LeetCode -- ReverseInteger
- [LeetCode]ReverseInteger
- 7-ReverseInteger
- leetcode #7 ReverseInteger
- LeetCode 007 ReverseInteger
- Leetcode#7: ReverseInteger
- ReverseInteger 给出一个整数,反转这个整数
- LeetCode之7,数论部分的ReverseInteger
- Leetcode修炼之路(Easy系列) --ReverseInteger
- CSS3系列一(概述、选择器、使用选择器插入内容)
- 剑指Offer:面试题22——栈的压入,弹出序列(java实现)
- 自定义只有上下边界的边框背景
- Qt QSS 美化(换肤必备)
- 右上角数字提醒 开源第三方BadgeView控件的使用
- ReverseInteger
- 简单粗暴的理解KMP
- 用tophat 将clear reads mapping 到植物基因组上
- 堡垒机应用发布软件安装手册
- ASP.NET(C#)纯代码实现GridView绑定增删改
- Java公司面试题集锦(二)
- 记录一个linux进程不运行不崩溃的问题
- 结束android应用进程,彻底退出android应用
- Microsoft Azure 上架设 Windows Server 2012 VPN(SSTP、L2TP、IPsec、IKEv2)