...

ABC-045 B - 3人でカードゲームイージー

A、B、Cの3名のカードゲーム。プレイヤーは持っている(次のプレイヤーが書いてある)カードの1枚目を場に出していき、持っているカードがなくなったプレイヤーが勝ちになります。持っているカードがなくなった時点ではなくカードがない状態で次のプレイヤーとして指定された時点で勝ちになるというところが少しわかりにくかったかもしれませんね。

なので各プレイヤーの持っているカードを保持する配列と指定されたプレイヤーの番号を渡して、次のプレイヤーを返す関数 playを作って誰かのカードがなくなるまでループで回しています。

 def getString():
    return input()


player_name = ['A', 'B', 'C']


def play(p, d):
    if (len(d[p]) == 0):
        print(player_name[p])
        return (-1)
    else:
        v = d[p].pop(0)
        return 0 if v == 'a' else 1 if v == 'b' else 2


def main():
    d = [
        list(getString()),
        list(getString()),
        list(getString())
    ]

    p = 0
    while p >= 0:
        p = play(p, d)


if __name__ == "__main__":
    main()