解題思路: 首先要先知道32-bit signed integer的範圍是 -2147483648 ~ 2147483647,接下來就可進行反轉,反轉再進行溢位判定即大功告成,複雜度為O(n),其中n為輸入數字位數
C++ code 如下:
class Solution { public: int reverse(int x) { if(x==-2147483648) return 0; long long y=0; int count=0; int c=x; if(x<0) c=-1*x; while(c) { y=y*10+(c%10); c/=10; } if(x>0) { if(y>2147483647 ) return 0; else return(int)y; } else { if(y>2147483648 ) return 0; else return-(int)y; } } };
沒有留言:
張貼留言