[R22A]谁获胜了

  • 难度 入门
  • 时限 1s
  • 空限 512m
  • 模拟

数据规模:1T1001 \le T \le 1002s1002 \le |s| \le 100,且 si{A,B}s_i \in \{\text{A}, \text{B}\}

思路

规则是一方领先另一方 22 场则立即结束。题目保证「比赛最后才能决定出胜负」,说明最后一局恰好让一方的累计胜场数超过另一方 22。因此胜方的胜场总数一定比败方多 22,只需统计字符串中 AB 出现的次数,谁多谁就是获胜者。

复杂度

时间 O(s)O(|s|),空间 O(1)O(1)

仓颉实现

import std.env.*
import std.convert.*

main(): Int64 {
    let reader = getStdIn()
    let t = Int64.parse(reader.readln().getOrThrow())
    for (_ in 0..t) {
        let s = reader.readln().getOrThrow()
        var ca: Int64 = 0
        var cb: Int64 = 0
        for (ch in s.toRuneArray()) {
            if (ch == r'A') {
                ca += 1
            } else {
                cb += 1
            }
        }
        if (ca > cb) {
            println("A")
        } else {
            println("B")
        }
    }
    return 0
}