Swift 4.2
class Solution {
func myAtoi(_ str: String) -> Int {
if str.count == 0 {
return 0
}
var sum = 0
var sign = 0
var digtalAppear: Bool = false
for character in str {
if character >= "0" && character <= "9" {
let num = Int(character.description)!
digtalAppear = true
sum = num + sum * 10
// if digtalAppear && sum == 0 && sign != 0 {
// return 0
// }
let limit = uint.max / 2 + 1
if sum >= limit {
sum = Int(sign == -1 ? limit : limit - 1)
}
} else if sum == 0 && sign == 0 {
if character == " " {
if digtalAppear {
return 0
}
} else if character == "-" || character == "+" {
sign = character == "+" ? 1 : -1
if digtalAppear {
return 0
}
} else {
return sum
}
} else {
return sign == -1 ? -sum : sum
}
}
return sign == -1 ? -sum : sum
}
}
网友评论