字符串转换整数
go
解决思路
- 字符串转换为整数类型
- Go语言标准输入输出库的基本使用教程
- 如何在Golang中将字符转换为整型
- 整体思路题解已经给出
- 首先去前导字符:若前导字符出现空格,继续;出现字母,返回结果;出现 + 、- 号,更改 pos 的值,i++ ,然后结束;出现数字,直接结束
- 分正负两种情况:正,先乘后加;负,先乘后减;并判断是否溢出,溢出则固定值并结束
- 返回结果
相关问题
- runtime: out of memory: cannot allocate 134217728-byte block (360448000 in use)
fatal error: out of memory 代码由于缺少 i++ 陷入无限循环中 - 先字母后数字,这种情况是不行的,数字前面的前导字符只能为空格
import "fmt"
func myAtoi(s string) int {
var num []int
ans:=0
length:=0
pos:=true
i:=0
for i<len(s) {
if s[i]=='-' {
pos = false
i++
break
}else if s[i]=='+' {
i++
break
}else if s[i]==' ' {
i++
}else if s[i]>='0' && s[i]<='9' {
break
}else {
return ans
}
}
for i<len(s) {
if s[i]<'0' || s[i] > '9' {
break
}
num = append(num,int(s[i]-'0'))
length++
i++
}
if pos == true {
for i=0;i<length;i++ {
ans*=10
ans+=num[i]
if ans>2147483647 {
ans = 2147483647
break
}
}
}else {
for i=0;i<length;i++ {
ans*=10
ans-=num[i]
if ans < -2147483648 {
ans = -2147483648
break
}
}
}
return ans
}