add new solutions
This commit is contained in:
parent
489fa73880
commit
0f5f9e331c
11 changed files with 539 additions and 0 deletions
56
solutions/0/q8/solution.go
Normal file
56
solutions/0/q8/solution.go
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
package q8
|
||||
|
||||
const (
|
||||
MIN = -(1 << 31)
|
||||
MAX = 1<<31 - 1
|
||||
)
|
||||
|
||||
func myAtoi(s string) int {
|
||||
sign := 0
|
||||
num := 0
|
||||
|
||||
Loop:
|
||||
for i := range len(s) {
|
||||
c := s[i]
|
||||
|
||||
switch c {
|
||||
case '-':
|
||||
if sign != 0 {
|
||||
break Loop
|
||||
}
|
||||
sign = -1
|
||||
|
||||
case '+':
|
||||
if sign != 0 {
|
||||
break Loop
|
||||
}
|
||||
sign = 1
|
||||
|
||||
case ' ':
|
||||
if sign != 0 {
|
||||
break Loop
|
||||
}
|
||||
|
||||
default:
|
||||
if c < '0' || c > '9' {
|
||||
break Loop
|
||||
}
|
||||
if sign == 0 {
|
||||
sign = 1
|
||||
}
|
||||
num = num*10 + int(c-'0')
|
||||
if sign*num < MIN {
|
||||
num = -MIN
|
||||
break Loop
|
||||
}
|
||||
if sign*num > MAX {
|
||||
num = MAX
|
||||
break Loop
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return sign * num
|
||||
}
|
||||
|
||||
var _ = myAtoi
|
||||
Loading…
Add table
Add a link
Reference in a new issue