String to Integer (atoi)

作者: d1497e8e780a | 来源:发表于2019-01-26 02:39 被阅读1次

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
  }

}

相关文章

网友评论

    本文标题:String to Integer (atoi)

    本文链接:https://www.haomeiwen.com/subject/quubjqtx.html