題目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers. Have you thought about this?
Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!
If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?
Throw an exception? Good, but what if throwing an exception is not an option? You would then have to re-design the function (ie, add an extra parameter).
題意:把要求的數字反轉,去掉前置零。
先把數位符號存到flag中,在將數字從個位開始讀取,用temp儲存每次讀取的數字並進位,再將原數的個位去掉。
遍曆一次,正好構造的數就是原數反轉,不需要太多額外空間,也沒必要轉化成字串。
class Solution {public: int reverse(int x) { int temp=0,flag=1; if(x<0)flag=-1,x=-x; while(x) { temp*=10; temp+=x%10; x/=10; } return temp*flag; }};// blog.csdn.net/havenoidea
題解目錄