本文主要是介绍413.Reverse Integer-反转整数(容易题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
反转整数
题目
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321题解
1.把整数转换成char数组,然后进行反转,再判断是否溢出以及符号。注意处理好溢出问题。
public class Solution {/*** @param n the integer to be reversed* @return the reversed integer*/public int reverseInteger(int n) {boolean lessThanZero = n < 0;char[] x_char = Integer.toString(Math.abs(n)).toCharArray();int len = x_char.length;for (int i=0;i<len/2;i++){char temp = x_char[i];x_char[i] = x_char[len-i-1];x_char[len-i-1] = temp;}long n_l = Long.valueOf(new String(x_char));if (n_l > Integer.MAX_VALUE){return 0;}return lessThanZero?-(int)n_l:(int)n_l;}
}
2.将整数n从低位到高位进行遍历,整数取最低位的方法为n % 10。可以逐步将n的最低位反转至结果的最高位,方法为
int i = result * 10 + n % 10;
判断是否发生溢出可用如下代码,可以自己体会一下。
i / 10 != result
public class Solution {/*** @param n the integer to be reversed* @return the reversed integer*/public int reverseInteger(int n) {int result = 0;while (n != 0){int i = result * 10 + n % 10;n /= 10;if (i / 10 != result){return 0;}result = i;}return result;}
}
Last Update 2016.9.16
这篇关于413.Reverse Integer-反转整数(容易题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!