刷leetcode:Reverse Integer

来源:互联网 发布:淘宝权女朋友静雯 编辑:程序博客网 时间:2024/05/16 13:51

题号:7 题目

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

这个题目需要注意的要考虑越界和数字的正负问题.

我这里用了字符串逆序的方法,效率并不高。应该还有之间二分移位的方法,时间复杂度可能会低一些,没有测试。



public class Solution {    public int reverse(int x) {       int sign=1;       if(x<0){           sign=-1;       }       StringBuilder intStr=new StringBuilder(String.valueOf(x*sign));       String reverseStr=intStr.reverse().toString();       int length=reverseStr.length();       int MAX=Integer.MAX_VALUE;       int MIN=Integer.MIN_VALUE;       int num=0;       int i=0;       while(i<length){       int digital = Character.getNumericValue(reverseStr.charAt(i));       if (sign == 1&& (num > MAX / 10 || (num == MAX / 10 && digital > MAX % 10))) {num = 0;break;}if (sign == -1&& (num > MAX / 10 || (num == MAX / 10 && digital > MAX % 10 + 1))) {num = 0;break;}num = num * 10 + digital;i++;       }              return sign*num;    }}


0 0
原创粉丝点击