1 Star 0 Fork 0

dl615/gotest

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
8String-to-Integer.go 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
dilei 提交于 2020-01-21 20:19 . update
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(myAtoi(" -78"))
fmt.Println(int('0'))
fmt.Println(byte(48 - '0'))
}
func myAtoi(str string) int {
res, sign, l, idx := 0, 1, len(str), 0
for idx < l && (str[idx] == ' ' || str[idx] == '\t') {
idx++
}
if idx < l {
if str[idx] == '+' {
sign = 1
idx++
} else if str[idx] == '-' {
sign = -1
idx++
}
}
for idx < l && str[idx] >= '0' && str[idx] <= '9' {
res = res*10 + int(str[idx]) - '0'
if res*sign > math.MaxInt32 {
return math.MaxInt32
} else if res*sign < math.MinInt32 {
return math.MinInt32
}
idx++
}
return res * sign
/*
res, sign, len, idx := 0, 1, len(str), 0
// Skip leading spaces
for idx < len && (str[idx] == ' ' || str[idx] == '\t') {
idx++
}
// +/- Sign
if idx < len {
if str[idx] == '+' {
sign = 1
idx++
} else if str[idx] == '-' {
sign = -1
idx++
}
}
// Numbers
for idx < len && str[idx] >= '0' && str[idx] <= '9'{
res = res * 10 + int(str[idx]) - '0'
if sign * res > math.MaxInt32 {
return math.MaxInt32
} else if sign * res < math.MinInt32 {
return math.MinInt32
}
idx++
}
return res * sign
*/
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dl615/gotest.git
git@gitee.com:dl615/gotest.git
dl615
gotest
gotest
master

搜索帮助