Skip to content

Commit f930d3f

Browse files
committed
fix fucking int32 test case
1 parent e6497ff commit f930d3f

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

reverse_integer/reverse_integer.go

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,36 @@
11
package 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+
39
func 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
}

reverse_integer/reverse_integer_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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++ {

0 commit comments

Comments
 (0)