[プログラマー(LV 1)]数字文字列と英語単語


問題の説明


パラメータは、数値の一部がゼロ単語になるか、不変の文字列sである.解関数を完了し、sが表す元の数値を返します.

前に示したように、結果値を返します.

私が書いたコード

import Foundation

func solution(_ s:String) -> Int {
    
    var arr: String = s
    
    if arr.contains("one") {
        arr = arr.replacingOccurrences(of:"one", with: "1")
    }
    if arr.contains("two") {
        arr = arr.replacingOccurrences(of:"two", with: "2")
    }
    if arr.contains("three") {
        arr = arr.replacingOccurrences(of:"three", with: "3")
    }
    if arr.contains("four") {
        arr = arr.replacingOccurrences(of:"four", with: "4")
    }
    if arr.contains("five") {
        arr = arr.replacingOccurrences(of:"five", with: "5")
    }
    if arr.contains("six") {
        arr = arr.replacingOccurrences(of:"six", with: "6")
    }
    if arr.contains("seven") {
        arr = arr.replacingOccurrences(of:"seven", with: "7")
    }
    if arr.contains("eight") {
        arr = arr.replacingOccurrences(of:"eight", with: "8")
    }
    if arr.contains("nine") {
        arr = arr.replacingOccurrences(of:"nine", with: "9")
    }
    if arr.contains("zero") {
        arr = arr.replacingOccurrences(of:"zero", with: "0")
    }
    return Int(arr)!
}
この問題は一番簡単だ.このように簡単に繰り返して解決してもいいと思いますが、他の人の答え方も悪くありません.
replacing occurrencesを使用して、配列内の文字を数値に変換し、into形式で返します.この場合,配列はnilである可能性があるため,Int(arr)はオープンタイプであり,展開して返す必要がある.私はこの时が确かに価値があることを知っているからです!使用しました.
以前問題を解決する際に学んだ置換誤差を思い出し,すぐにこの問題を解決した.確かに知らないことをメモして、よく使うと、簡単に覚えられるようです.