Swiftで書く「問題解決のPythonプログラミング」P.8

Swiftで書く「問題解決のPythonプログラミング」P.8

Playgroundで実施出来ます。

import Cocoa

var cap1:[String] = ["F", "F", "B", "B", "B", "F", "B",
                        "B", "B", "F", "F", "B", "F"]
var cap2:[String] = ["F", "F", "B", "B", "B", "F", "B",
                        "B", "B", "F", "F", "F", "F"]

func pleaseConform(caps:[String]) {
    var start = 0
    var forward = 0
    var backward = 0
    var intervals:[(Int, Int, String)] = []
    var caps = caps
    caps.append("END")
    for i in 1...caps.count - 1 {
        if caps[start] != caps[i] {
            intervals.append((start, i - 1, caps[start]))
            if caps[start] == "F" {
                forward = forward + 1
            }
            else {
                backward = backward + 1
            }
            start = i
        }
    }
    var flip:String
    if forward < backward {
        flip = "F"
    }
    else {
        flip = "B"
    }
    for t in intervals {
        if t.2 == flip {
            print("People in positions \(t.0) through \(t.1) flip your caps!")
        }
    }
}

print("cap1")
pleaseConform(caps: cap1)
print("cap2")
pleaseConform(caps: cap2)


問題解決のPythonプログラミング ―数学パズルで鍛えるアルゴリズム的思考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です