LeetCode之Reverse Integer
输入描述
输入描述
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
思想
1.将输入的int型整数转化为long型,然后将整数取绝对值转化为字符串,依次倒序遍历字符串添加至Stringbuilder中,最终判断转置后的整数是否溢出,溢出输出为0,否则原样转置输出。
2.将输入的整数转为long型,循环取得输入整数对10的取余结果=》res = res*10+x%10;x = x/10;若x为0退出循环,若res溢出输出为0,否则原样输出。
代码实现
Public class Solution {
public int reverse1(int x) {
long initial = x;
String str = String.valueOf(Math.abs(initial));
System.out.println(str);
StringBuilder bulider = new StringBuilder();
int len = str.length();
long rev;
for (int i = len-1; i >=0 ; i--) {
bulider.append(str.charAt(i));
}
rev= Long.parseLong(bulider.toString());
if (res>Integer.MAX_VALUE){
return 0;
}
return x>0?(int)rev:(int)rev*-1;
}
public int reverse2(int x) {
long rev= 0;
while( x != 0){
System.out.println(x%10);
rev= rev*10 + x % 10;
x= x/10;
if( rev > Integer.MAX_VALUE || rev < Integer.MIN_VALUE)
return 0;
}
return (int) rev;
}
}