题目描述:给定了一个32bit长度的int类型整数,将这个数翻转过来,返回一个整数,这个题比较简单,唯一要注意的是int类型的取值返回,数字翻转之后可能会超过int的取值范围,超过范围之后,直接返回0可以。
以下解法
class Solution {
public int reverse(int x) {
//一个遍历用于接收结果
int result = 0;
while(x != 0){
//进行取模运算,获取到当前x的个位值
int k = x%10;
//将K和当前的结果相加,注意result要*10,就是进行反转操作
int l = result*10+k;
//判断下当前L/10和result的关系
//如果不相等,说明result*10+k已经超过了int的取值范围
if(l/10 != result){
return 0;
}
//如果相等,将结果赋值给result
result=l;
//x/10,就相当x往右挪一下(不是位运算)
x=x/10;
}
return result;
}
}
运行结果: Runtime: 2 ms, faster than 64.37% of Java online submissions for Reverse Integer.
Memory Usage: 42 MB, less than 6.08% of Java online submissions for Reverse Integer.