LeetCode(java)7. Reverse Integer

来源:互联网 发布:linux任务管理器 编辑:程序博客网 时间:2024/04/29 07:10

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

题目描述:按位反转数字

2种解题思路:

①变为StringBuffer,调用reverse函数再调用Integer的valueOf函数,通过捕捉异常判断是否溢出:

leetcode通过时间为:7 ms

public class Solution {    public int reverse(int x) {        String s = ""+x;if(s.startsWith("-")){s = "-" + new StringBuffer(s.substring(1, s.length())).reverse().toString();}else{s = new StringBuffer(s).reverse().toString();}        try {            return Integer.valueOf(s);} catch (Exception e) {return 0;}    }}

②通过除法取余:

leetcode通过时间为:2 ms

public class Solution {    public int reverse(int x) {long rs = 0;boolean flag = false;if(x<0){flag = true;x = -x;}while(x!=0){rs = rs*10 + x%10;x/=10;}if(flag)rs = -rs;if(rs>Integer.MAX_VALUE || rs<Integer.MIN_VALUE)return 0;else return (int)rs;}}


0 0
原创粉丝点击