Golang:
思路:这题我也不知道为啥我非要在半夜把这道题做出来,而且还非要丧心病狂的去用两种方式解,从而成功拉低了我的提交正确率。。。这题不想多说,这题我第一种代码极烂,完全不推荐大家使用,只是作为一个思路,即使用正则表达式去做这题。
代码如下:
func myAtoi(str string) int {
reg:=regexp.MustCompile("^\\s*[+-]?0*\\d{1,10}")
if reg!=nil{
res:=reg.FindString(str)
if res=="" {
return 0
}else{
bytes:=[]byte(res)
i:=0
for i<len(bytes) {
if bytes[i]==' '||bytes[i]=='+'{
i++
}else {
break
}
}
bytes=bytes[i:]
bts:=string(bytes)
result,_:=strconv.Atoi(bts)
if -2147483648 >result{
return -2147483648
}
if result>2147483647 {
return 2147483647
}
return result
}
}
return 0
}
有疑问加站长微信联系(非本文作者)