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当做了条件。