Open2
Swiftの習得のためパズルソルバーを作る〜テンパズル編〜
せっかくMac持ってるのでSwift書けるようになりたい。ので、1からの入門のためにパズルを解くアルゴリズムを実装していくぞ。テンパズルから挑戦だ。(パズルで鍛えるアルゴリズム力 大槻兼資 を参考にします)
逆ポーランド記法で書かれた計算式を計算する関数
import Foundation
//逆ポーランド記法で書かれた計算式を計算する
class ReversePolrand {
func calcPoland(exp: String) -> Double {
var space: [Double] = []
for c in exp {
if (c >= "0" && c <= "9") {
let add = Double(String(c))!
space.append(add)
} else {
//演算子の場合
let second = space.last
space.removeLast()
let first = space.last
space.removeLast()
if( c == "+" ) {
space.append(first! + second!)
} else if ( c == "-" ) {
space.append(first! - second!)
} else if ( c == "*" ) {
space.append(first! * second!)
} else {
space.append(first! / second!)
}
}
}
return space.last!
}
}
アンラップを強制でやってるところは直したいね。