JAVA - LEET CODE - Reverse Integer

被这个折磨了一天,上班都不安生。自己开始写了一个超级复杂的,又是各种转换,但是还是一直报错。后来看了别人写的,也没有恍然大悟的感觉。刚刚找了一篇写的很棒的代码(https://blog.csdn.net/DERRANTCM/article/details/46938355),然后倒推了解题思路。虽然不一定正确,但是肯定比硬背答案好。希望抛砖引玉,能有高手帮忙专业指导。(写完感觉有点像一本正经的胡说八道!!!)

贴关键的地方:

long temp = x;

long result = 0;

while (temp != 0){

    result = result * 10 + temp % 10;

    temp = temp /10 ;

}

具体分析过程可见下图:

可以看出,第二次的计算都是在第一次的基础上运算的。而且在得到正式最终的答案之前,前面的结果我们都可以不要。

所以可以考虑每次都自动运算一次temp/10, 以及这个结果再%10. 

之所以不是写循环内部的第一句,是因为,要考虑只有一位数的值。同时可以看出,当temp/10 =0,temp为一位数时,循环就结束,也就是我们在循环当中把temp!=0当做了条件。

JAVA - LEET CODE - Reverse Integer

JAVA - LEET CODE - Reverse Integer