1. 7_整数反转
/*
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
输入: 123 -123 120
输出: 321 -321 21
如果反转后整数溢出那么就返回 0。
*/
/**
* 求余(判断是否溢出有多种方式) o(log(n))
*/
class Solution {
public int reverse(int x) {
long sum = 0;
while(x != 0){
sum *= 10;
sum += (x%10);
x /= 10;
}
return (int)sum == sum ? (int)sum : 0;
}
}
/**
* 转成String o(n) 捕获异常判断是否溢出
*/
public class Solution {
public int reverse(int x) {
String s = String.valueOf(x);
String rs = "";
boolean f = false;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == '-') {
f = true;
} else {
rs += s.charAt(i);
}
}
try {
return f ? Integer.parseInt(rs) * (-1) : Integer.parseInt(rs);
} catch (Exception e) {
return 0;
}
}
}