Swift algorithm practice

String to Integer (atoi)

2019-01-26  本文已影响1人  d1497e8e780a

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
  }

}
上一篇 下一篇

猜你喜欢

热点阅读