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

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

Playgroundで実施出来ます。

import Cocoa

var cap1:[Character] = ["F", "F", "B", "B", "B", "F", "B",
                        "B", "B", "F", "F", "B", "F"]

func pleaseConform(caps:[Character]) {
    var start = 0
    var forward = 0
    var backward = 0
    var intervals:[(Int, Int, Character)] = []
    
    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
        }
    }
    intervals.append((start, caps.count - 1, caps[start]))
    if caps[start] == "F" {
        forward = forward + 1
    }
    else {
        backward = backward + 1
    }
    var flip:Character
    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!")
        }
    }
}

pleaseConform(caps: cap1)


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

コメントを残す

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