Reverse Integer
Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Note:The input is assumed to be a 32-bit signed integer. Your function should return
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
Subscribe to see which companies asked this question.
题目看起来很简单,最简单的思路就是把这个整数转化成String类型,然后反转就可以了。但是如果不转化,可能有一个非常巧妙的思路,核心代码就是几行
while(x!=0){
result = result*10+x%10;
x/=10;
}
这里一看不太好理解,例如给出的数字是 1234567
第一次执行结果 result的值就是7 x的结果是123456
第二次执行结果 result的值就是76 x的结果是12345
。。。。。
最后实现反转 完整代码:
public int reverse(int x) {
if(x==Integer.MIN_VALUE)
return 0;
int result = 0;
x=Math.abs(x);
while(x!=0){
if(result*10+x%10>Integer.MAX_VALUE)
return 0;
result = result*10+x%10;
x/=10;
}
return result;
}
算法真奇妙。。。。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)