File tree Expand file tree Collapse file tree 2 files changed +22
-7
lines changed
Expand file tree Collapse file tree 2 files changed +22
-7
lines changed Original file line number Diff line number Diff line change 11package reverse_integer
22
3+ // fucking leetcode's int32 overflow test cases
4+ const (
5+ MAX int32 = 1 << 31 - 1
6+ MIN = - MAX - 1
7+ )
8+
39func reverse (x int ) int {
4- sign : = 1
10+ var sign int32 = 1
511 tmp := x
612 if x < 0 {
713 sign = - 1
814 tmp = - 1 * x
915 }
10- list := []int {}
16+ list := []int32 {}
1117 for tmp > 9 {
12- list = append (list , tmp % 10 )
18+ list = append (list , int32 ( tmp % 10 ) )
1319 tmp = tmp / 10
1420 }
15- list = append (list , tmp )
16- ret := 0
21+ list = append (list , int32 ( tmp ) )
22+ var ret int32
1723 for i := 0 ; i < len (list ); i ++ {
24+ if sign == 1 {
25+ if ret > (MAX - list [i ])/ 10 {
26+ return 0
27+ }
28+ } else {
29+ if - ret < (MIN + list [i ])/ 10 {
30+ return 0
31+ }
32+ }
1833 ret = 10 * ret + list [i ]
1934 }
20- return ret * sign
35+ return int ( ret * sign )
2136}
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ func TestReverse(t *testing.T) {
1717 - 321 ,
1818 0 ,
1919 - 1 ,
20- 9646324351 ,
20+ 0 ,
2121 }
2222 caseNum := 5
2323 for i := 0 ; i < caseNum ; i ++ {
You can’t perform that action at this time.
0 commit comments