[Swift]バックアップアルゴリズム#8958


📝 質問する


「OOXOXXOOO」というOX問答の結果がありますOは質問に答えたが,Xは間違った質問だ.問題が発生した場合、問題のスコアは問題に接続されたOの数になります.例えば、10番の問題の点数は3です.
「OOXOXOOO」の点数は1+2+0+1+0+1+2+3=10点です.
OXテストの結果が得られたら、得点プログラムを作成してください.

入力


最初の行は、テスト例の数を示します.各テスト・インスタンスは、0より大きい文字列と80未満の文字列の行で構成されます.文字列はOとXからなる.

🖨 しゅつりょく


各テスト・インスタンスはスコアを出力します.

入力#の例

5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

🖨 サンプル出力

10
9
7
55
30

📚 私が提出したコード

let count = Int(readLine()!)!
for _ in 0 ..< count {
    let result = readLine()!.map { String ($0) }
    var previousScore = 0
    var totalScore = 0
    for i in result {
        if i == "O" {
            previousScore += 1
            totalScore += previousScore
        } else {
            previousScore = 0
        }
    }
    
    print(totalScore)
}

▼▼私が提出したコードの説明

  • readline():キーボード入力値を受け入れる関数
  • readLine()!.map{String($0)}:キーボードで入力した値をStringとし、要素に分離してStringに変換します.
  • previousScore:変数
  • 、以前に実行されたスコアの累計
  • totalScore:累積スコアを加算した最終スコア(Xの場合、累積スコアは0なので加算は不要).
  • メモリ:62228 KB
  • 時間:8 ms
  • コード長:357 B